Node.js基础知识普及
Node.js只支持單線程,故不會產(chǎn)生死鎖,采用非阻塞I/O機(jī)制和事件環(huán)機(jī)制。非常適合與開發(fā)需要處理大量并發(fā)的輸入/輸出的應(yīng)用程序。
? 一. Node.js的核心模塊有很多,這里先寫幾個比較常用的(目前我個人較常用的,不代表大眾):
?? 1.buffer:用于實(shí)現(xiàn)二進(jìn)制數(shù)據(jù)的存儲和轉(zhuǎn)換;
?? 2.child-process:用于實(shí)現(xiàn)子進(jìn)程的創(chuàng)建與管理;
?? 3.console:用于控制臺輸出信息;
?? 4.events:用于為事件處理提供一個基礎(chǔ)類;
?? 5.fs:用于操作文件及文件系統(tǒng);
?? 6.http:用于實(shí)現(xiàn)HTTP服務(wù)器端及客戶端;
?? 7.https:用于實(shí)現(xiàn)HTTPS服務(wù)器端及客戶端;
?? 8.path:用于處理文件路徑;
?? 9.string_decoder:用于實(shí)現(xiàn)從二進(jìn)制數(shù)據(jù)到字符串?dāng)?shù)據(jù)之間的轉(zhuǎn)換;
? 10.url:用于實(shí)現(xiàn)URL字符串的解析與格式化。
? 二.Node.js中有以下幾個追加的類、函數(shù)及對象可以在不引用任何模塊的情況下使用:
? 1.buffer類:用于為二進(jìn)制數(shù)據(jù)的存儲提供一個緩存區(qū);
? 2.setTimeout函數(shù):
? 3.clearTimeout函數(shù):
? 4.setInterval函數(shù):
? 5.clearInterval函數(shù):
? 6.require對象:用于加載模塊;
? 7.module對象:用于訪問模塊信息;
? 8.process對象:用于訪問進(jìn)程信息。
三.REPL
? REPL是Node.js提供的一個交互式運(yùn)行環(huán)境。在命令行窗口輸入“node”命令并按下回車即可進(jìn)入REPL運(yùn)行環(huán)境,REPL運(yùn)行環(huán)境中的命令提示符默認(rèn)為“>”。
?1.在REPL運(yùn)行環(huán)境中,可以通過下劃線“_”來訪問最近使用的表達(dá)式;
?2.在REPL運(yùn)行環(huán)境中的基礎(chǔ)命令:
- ?.break:當(dāng)書寫一個多行的函數(shù)中途想放棄或重寫,該命令可使你返回到命令提示符的起點(diǎn)處,快捷鍵Ctrl+c有同樣的效果;
- ?.clear:用于清除REPL運(yùn)行環(huán)境的上下文對象中保存的所以變量和函數(shù),另外,.clear也有.break的功能;
- ?.exit:用于退出REPL運(yùn)行環(huán)境,也可按兩次Ctrl+c;
- ?.save:把寫在REPL運(yùn)行環(huán)境中的所有表達(dá)式保存到一個文件中,可以指定文件的路徑;
- ?.load:把某個文件中保存的所有表達(dá)式一次加載到REPL運(yùn)行環(huán)境中,可以指定文件的路徑;
四.Node.js中常用的方法及函數(shù)
?? 1.console.dir:用于查看一個對象中的內(nèi)容并將該對象的信息輸出到控制臺中;
?? 2.console.time方法與console.timeEnd方法:統(tǒng)計(jì)一段代碼的執(zhí)行時間。console.time用于標(biāo)記開始時間,console.timeEnd用于標(biāo)記結(jié)束時間。并將經(jīng)過的毫秒數(shù)輸出到控制臺;使用方法:
??? console.time(label)? console.timeEnd(label)
? 這兩個方法的參數(shù)必須相同,參數(shù)值可以是任何字符串。
?? 3.console.assert方法:用于對一個表達(dá)式的執(zhí)行結(jié)果進(jìn)行評估,如果該表達(dá)式的執(zhí)行結(jié)果為false。則輸出一個消息字符串,并拋出AssertError異常。
?? 4.使用require.resolve函數(shù)查詢完整模塊名:(只做查詢,不加載)
????? 用法,例: require.resolve("./test.js");
?? 5.require.cache對象:該對象代表緩存了所有已被加載模塊的緩存區(qū)??梢杂谩癱onsole.log(require.cache)”來查看。
五.Node.js中的包
?? 一個包中通常包含以下內(nèi)容:
???? ?1.包的根目錄中存放package.json文件;
????? 2.在lib子目錄中存放Javascript文件;
???? ?3.在bim中存放二進(jìn)制文件;
???? ?4.在doc中存放對包和包的只用方法的說明文件;
???? ?5.在test子目錄中存放一些測試用的文件。
package.json文件中包含的字段及作用:
??? ?name:包名,包名必須是唯一的,由小寫字母、數(shù)字、下劃線組成,不能有空格;
??? ?preferglobal:是否支持全局安裝,true為支持,false為不支持;
??? ?description:包說明;
???? version:版本號;
??? ?author:作者信息;
??? ?repository:倉庫托管地址數(shù)組;
??? ?dependencies:本包所依賴的包,是一個關(guān)聯(lián)數(shù)組,有包名和版本號組成;
npm包管理工具:
?? ?1.? npm root -g //查看Node.js的全局包的安裝路徑
????2.? npmconfig set prefix “d:\node” //修改Node.js的全局包的安裝路徑到“d:\node\node_modules”;
?? ?3. npmlist? //查看當(dāng)前目錄下安裝的所有包,若要查看全局,加“-g”;
?? ?4.npm uninstall <包名>? //卸載當(dāng)前目錄下的某個包,若要卸載全局中的,在包名前加“-g”;
?? ?5. npm update <包名>??? //更新當(dāng)前目錄下的某個包,若要卸載全局中的,在包名前加“-g”.
轉(zhuǎn)載于:https://www.cnblogs.com/dan-dan/p/4668954.html
總結(jié)
以上是生活随笔為你收集整理的Node.js基础知识普及的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: B. Quasi Binary
- 下一篇: 关于jQuery Mobile 的pag