-
HTTP知識
查看全部 -
模塊的流程
查看全部 -
git Bash
查看全部 -
模塊與包管理工具
查看全部 -
www.npmjs.com? node.js? github.com
stackoverflow.com
查看全部 -
解決linux環境安裝問題
yum -y update && yum -y groupinstall "Development Tools"
查看全部 -
一、http.request(options[, callback]);
hots、hostname(host的別名)、port、localAddress、socketPath、method、path、headers、auth、agent(代理)、keepAlive、keepAliveMsecs
二、
////?request.js var?http?=?require('http'); var?querystring?=?require('querystring'); var?postData?=?querystring.stringify({ ??'content':?'一起期待下一期的課程', ??'cid':?348 }); var?options?=?{ ??hostname:?'www.xianlaiwan.cn', ??port:?80, ??path:?'/course/document', ??method:?'post', ??headers:?{ ????'Accept':?'application/json,?text/javascript,?*/*;?q=0.01', ????'Accept-Encoding':?'gzip,?deflate', ????'Accept-Language':?'zh-CN,zh;q=0.9,en;q=0.8' ????'Cache-Control':?'no-cache', ????'Connection':?'keep-alive', ????'Content-length':?postData.length, ????'Cookie':?'imooc_uuid=3d8f2c90-7665-4a1e-b895-df1d56529a9a;?imooc_isnew_ct=1536739444;?imooc_isnew=2;?IMCDNS=0;?Hm_lvt_fb538fdd5bd62072b6a984ddbc658a16=1536739476,1536890903;?Hm_lvt_f0cfcccd7b1393990c78efdeebff3968=1536739480,1536890903;?Hm_lpvt_fb538fdd5bd62072b6a984ddbc658a16=1536905046;?Hm_lpvt_f0cfcccd7b1393990c78efdeebff3968=1536905046;?cvde=5b9b18152e001-33', ????'Host':?'www.xianlaiwan.cn', ????'Pragma':?'no-cache', ????'Referer':?'http://www.xianlaiwan.cn/learn/348', ????'User-Agent':?'Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10_12_4)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/69.0.3497.92?Safari/537.36', ????'X-Requested-With':?'XMLHttpRequest' ??} }; var?req?=?http.request(options,?function(res)?{ ??console.log('Status:'?+?res.statusCode); ??console.log('headers:'?+?JSON.stringify(res.headers)); ??res.on('data',?function(chunk){ ????console.log(Buffer.isBuffer(chunk)); ????console.log(typeof?chunk); ??}); ??res.on('end',?function()?{ ????console.log('評論完畢'); ??}); }); req.on('error',?function(e)?{ ??console.log('Error'?+?e.message); }); req.write(postData); req.end();
查看全部 -
一、nodeJs不存在瀏覽器中的冒泡,捕獲等行為。有events模塊。
二、EventEmitter事件發射,事件監聽。支持多個事件監聽,最大支持10個(值可以修改)。
life.setMaxListeners(11);
三、
//?查看事件是否被監聽過 var?hasConfortListener?=?life.emit('hug',?'漢子');?//?true:監聽過,false:沒被監聽
四、
////?①事件監聽的移除 life.removeListener('hug',?water);?//?hug:事件名,water:方法名 life.removeAllListeners('hug');?//?批量移除 ////?②事件監聽的數量 life.listeners('hug'.length); EventEmitter.listenerCount(life,?'hug');
查看全部 -
一、sudo npm install cheerio。像jquery一樣的模塊。如果沒有sudo,會報錯(沒有權限)。
var?$?=?cheerio.load(html);
二、forEach是js中的方法(針對數組),each是jquery中的方法。
查看全部 -
一、測試http性能,appache自帶的ab.
ab?-n1000?-c10?http://localhost:2015/
(1)-n:總請求數, ?
-c:并發數,Concurrency[k?n'k?r?nsi](并發性)。
-t:測試進行的總時間,-p:post數據文件,-w:以html表格形式輸出文件。
(2)2015后要加/
二、重要指標
1、Requests per second:服務器吞吐率。
2、Time per request:用戶平均請求的等待時間。
3、第2個Time per request:每個連接請求時間實際運行時間的平均值。
查看全部 -
作用域:與調用函數,訪問變量的能力有關 作用域分為:局部和全局(在局部作用域里可以訪問到全局作用域的變量,但在局部作用域外面就訪問不到局部作用里面所設定的變量)?
?上下文:與this關鍵字有關 是調用當前可執行代碼的引用 ? ? ? this總是指向調用這個的方法的對象 js里的this 通常是當前函數的擁有者,擁有者叫做執行上下文。在nodejs中聲明函數中的this指向全局global,js中指向window。實例化函數后,指向當前函數的擁有者。
call和apply可以改變上下文執行對象。(把原來的this全都替換成自己指定的對象即可理解。)
查看全部 -
一、github項目頁按下't'鍵,能快速調出搜索頁。
二、搜索http.js,知道createServer做了什么事,搜索_http_server, emit觸發request事件。
查看全部 -
一、javascript的this指向當前函數的擁有者。擁有者叫做執行上下文。
this只能在函數內部使用。
二、node.js中this
1、
var?pet?=?{ ??words:?'...', ??speak:?function()?{ ????console.log(this.words); ????console.log(this?===?pet);?//?true ??} }; pet.speak();
2、nodeJs中是global,javascript是window
?function?pet(words)?{ ???this.words?=?words; ???console.log(this.words); ???console.log(this?===?global);?//?true ?} ?pet('...');
三、上下文
定義時的上下文、調用時的上下文、上下文的改變。
四、函數的調用,函數擁有的2個方法:call、apply。
1、call, applly可以改變上下文執行對象。
2、call函數需要一個參數列表, apply允許傳遞一個參數或者數組。改變上下文調用環境。
3、調用對象方法, 用另一個對象替換當前對象。
查看全部 -
一、http
1、回調
2、同步、異步
3、I/O
磁盤的寫入和讀取
4、單線程、多線程
(1)瀏覽器的js是單線程的。
(2)js最基礎的異步函數是setTimeout, setInterval。
(3)單線程的nodeJs,可以通過異步達到多線程的效果。
5、阻塞、非阻塞
6、事件
7、事件驅動
為某個事件注冊了某個函數,但是這個函數不會立即執行,只有事件觸發了才會調用回調函數。
8、基于事件驅動的回調
9、事件循環。
查看全部 -
一、http1.0的請求方法(8種):
get、post、put、delete、head、trace、options
查看全部
舉報