Nginx本身是一個Server,當nginx作為一個代理服務器運行起來的后,用戶A向nginx發(fā)起一個http請求實際上是一個基于tcp/ip的連接,因為http是tcp/ip協(xié)議簇的一個組合協(xié)議。當nginx收到請求后nginx會遍歷server實例下的location模塊數(shù)組,匹配到模塊后讀取模塊配置,proxy_pass參數(shù)作為nginx的下一跳目標宿主機,兩個主機之間需要建立基于傳輸?shù)目尚湃芜B接,而剛好tcp/ip提供連接可靠(面向連接)和基于傳輸的特性,因此nginx服務器和宿主機之間想要建立一個可靠連接基于tcp/ip進行是最佳選擇,當nginx解析出proxy_pass參數(shù)的url之后與宿主機建立起一個基于http的可靠連接似乎順理成章,nginx代理現(xiàn)在已經打通了兩邊的連接,那么可以開始運輸資源了。
這是要依賴框架的,看你的博客用的是什么工具,最后發(fā)布的肯定是html而不是md,所以可能是./test.html
vuex管理高亮的index啊
你是不是多加了 '.'
放在static目錄下面
laravel 里面默認沒有場景的概念,你可以使用不同的Request來模擬場景,達到你的需求
登錄之后localStorage
記錄token
了嗎,看寫法好像是axios的攔截器獲取驗證不通過導致的跳轉
// 獲取17px
dom.style.transform.match(/translate3d.+,(.+),/)[1].trim()
列表渲染的時候對匹配到的文字進行替換,具體操作就是js改變數(shù)據可以直接拼接html,
找到了這個地址,看了看
const evalExpr = /<%=(.+?)%>/g;//(.+?)相當于是匹配一行的內容
//這個是從'<%='開始到'%>'結束,如果中間換行了不會匹配,例如 <%=val%>那么val就是被匹配到的值
const expr = /<%([\s\S]+?)%>/g;//([\s\S]+?)可以匹配多行
//這個是從'<%'開始到'%>'結束,換行了也會繼續(xù)匹配到
//兩個表達式的后面/g,相當于是參數(shù),g表示著全局,就是只要符合這個匹配條件的都會匹配到
//emmmmmmmmm我覺得我表達得可能不是很清楚... . + ? \s \S可以去翻一下正則的手冊了解一下
parse傳參數(shù)為什么要這么傳,這個就是由你的模板決定的了,
let template = `
<ul>
<% for(let i=0; i < data.length; i++) { %>
<li><%= data[i] %></li>
<% } %>
</ul>
`;
//data.supplies.length 修改成data.length data.supplies[i],修改成data[i] 這樣你就可以傳入數(shù)組了
console.log(parse(["broom", "mop", "cleaner"]));
template為什么不用定義聲明?啥意思,沒懂
為什么它還有方法.replace?template是一個string對象,本來就有著replace這個方法 string對象 string對象 replace方法 了解一下
不是很懂template那段寫的是什么意思?
這個主要就是替換了
template = template
.replace(evalExpr, '`); \n echo( $1 ); \n echo(`')
.replace(expr, '`); \n $1 \n echo(`');
//咋說呢emmmm,我們拆開一下,先看看上面的string對象 replace方法,主要就是替換文本
template = template.replace(evalExpr, '`); \n echo( $1 ); \n echo(`');
//evalExpr = /<%=(.+?)%>/g; 前面已經知道了是替換文本中的 <%=xxxxx%>的內容
//所以這個語句就是,吧template里面的所匹配到的<%=xxxxx%>的內容替換掉
//替換成什么呢?替換成 "); \n echo( $1 ); \n echo(" ,里面最核心的就是$1了
//$1表示與 regexp(evalExpr 正則表達式) 中的第 1 到第 99 個子表達式相匹配的文本。(我copy w3c的)
//也就是(.+?)表示的內容,對就是 xxxxx 那玩意
//然后我的文本(<%=xxxxx%>)就變成了 "); \n echo( xxxxx ); \n echo("
//返回這個文本,template又被賦值了,進入下一個
template = template.replace(expr, '`); \n $1 \n echo(`');
//同上啊,這回只是 <%([\s\S]+?)%> 變成了 "`); \n xxxxx \n echo(`"
//上面的單引號我都換成了雙引號,'和`看得有點亂....
template = 'echo(`' + template + '`);';//文本相加,這個應該很容易看懂吧
let script =
`(function parse(data){
let output = "";
function echo(html){
output += html;
}
${ template }
return output;
})`;
//也是文本合成
return output; //返回這一串合成的代碼
我覺得樓主可以用調試功能,這樣可以看到每一個變量的每一步變化過程,再不濟用console.log()也不錯
已解決。。。。。
1.加入配置:axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
2.引入:import Qs from 'qs'
3.post請求中,需要將數(shù)據序列化:data: Qs.stringify(params),
說明 between 這個 operator 沒有生效,有可能是 http://docs.sequelizejs.com/m... 的原因。
把 operatorsAliases 加上試試:
const Sequelize = require('sequelize');
const Op = Sequelize.Op;
const operatorsAliases = {
$eq: Op.eq,
$ne: Op.ne,
$gte: Op.gte,
$gt: Op.gt,
$lte: Op.lte,
$lt: Op.lt,
$not: Op.not,
$in: Op.in,
$notIn: Op.notIn,
$is: Op.is,
$like: Op.like,
$notLike: Op.notLike,
$iLike: Op.iLike,
$notILike: Op.notILike,
$regexp: Op.regexp,
$notRegexp: Op.notRegexp,
$iRegexp: Op.iRegexp,
$notIRegexp: Op.notIRegexp,
$between: Op.between,
$notBetween: Op.notBetween,
$overlap: Op.overlap,
$contains: Op.contains,
$contained: Op.contained,
$adjacent: Op.adjacent,
$strictLeft: Op.strictLeft,
$strictRight: Op.strictRight,
$noExtendRight: Op.noExtendRight,
$noExtendLeft: Op.noExtendLeft,
$and: Op.and,
$or: Op.or,
$any: Op.any,
$all: Op.all,
$values: Op.values,
$col: Op.col
};
const sequelize = new Sequelize('db', 'user', 'pass', {
host: 'localhost',
dialect: 'mysql',
pool: {},
operatorsAliases: operatorsAliases, //操作符安全
});
你這個代碼是打錯了嗎?let [...spraed]=[10,5,8,23,30];
這里這樣用多此一舉
這樣寫的好處是引用類型的第一層會按值復制
//第一層按值賦值 但如果是二層以上還是引用 []
let arr = [10,5]; // 2層 [{name:"li"}]
let [...spraed] = arr;
spraed[0] = 1 //2層 spraed[0].name = 1
console.log(arr);//[10,5] //2層 [{name:1}]
console.log(spraed);//[1,5] //2層 [{name:1}]
const isX=value=>value==10;
let spraed=[10,5,8,23,30];
let filtered=spraed.filter(isX);
console.log(filtered);
v=>v
箭頭函數(shù) -> function(v){return v};
...
擴展運算符 let a = [a,b,c]; ...a -> a,b,c
所以 [...a] -> [a,b,c]
擴展運算符常用于函數(shù)
function func(a,b,c){console.log(a,b,c)};
func(...[1,2,3]);//1,2,3
function func(...arg){console.log(arg)};
func(1,2,3);//[1,2,3]
//剩余參數(shù)
function func(a,...arg){console.log(a,arg)};
func(1,2,3);//1,[2,3]
Vue 在插入、更新或者移除 DOM 時,提供多種不同方式的應用過渡效果。你可以看下
https://cn.vuejs.org/v2/guide...
另外這種簡單的動畫可以通過控制class來自己實現(xiàn)
你這屬于特殊需求,需要自己靈活改動。
可以采用兩個table,第一個展示表頭和開頭幾行,固定。
第二個table展示其他數(shù)據
會。
不過既然一樣,為什么不用同一個呢?
你可以重新再寫一個權重更高的css 覆蓋你引入進來的css樣式
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯(lián)網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。