成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

node學(xué)習(xí)系列之基礎(chǔ)(二)

zhaot / 1206人閱讀

摘要:由于這種特性,某一個(gè)任務(wù)的后續(xù)操作,往往采用回調(diào)函數(shù)的形式進(jìn)行定義。另外,回調(diào)函數(shù)本身的第一個(gè)參數(shù),約定為上一步傳入的錯(cuò)誤對(duì)象。這種寫法有一個(gè)很大的好處,就是說只要判斷回調(diào)函數(shù)的第一個(gè)參數(shù),就知道有沒有出錯(cuò),如果不是,就肯定出錯(cuò)了。

REPL環(huán)境

在命令行鍵入node命令,后面沒有文件名,就進(jìn)入一個(gè)Node.js的REPL環(huán)境(Read–eval–print loop,”讀取-求值-輸出”循環(huán)),可以直接運(yùn)行各種JavaScript命令。

REPL是Node.js與用戶互動(dòng)的shell,各種基本的shell功能都可以在里面使用,比如使用上下方向鍵遍歷曾經(jīng)使用過的命令。

異步操作

Node采用V8引擎處理JavaScript腳本,最大特點(diǎn)就是單線程運(yùn)行,一次只能運(yùn)行一個(gè)任務(wù)。這導(dǎo)致Node大量采用異步操作(asynchronous opertion),即任務(wù)不是馬上執(zhí)行,而是插在任務(wù)隊(duì)列的尾部,等到前面的任務(wù)運(yùn)行完后再執(zhí)行。

由于這種特性,某一個(gè)任務(wù)的后續(xù)操作,往往采用回調(diào)函數(shù)(callback)的形式進(jìn)行定義。

Node約定,如果某個(gè)函數(shù)需要回調(diào)函數(shù)作為參數(shù),則回調(diào)函數(shù)是最后一個(gè)參數(shù)。另外,回調(diào)函數(shù)本身的第一個(gè)參數(shù),約定為上一步傳入的錯(cuò)誤對(duì)象。

這是因?yàn)榛卣{(diào)函數(shù)主要用于異步操作,當(dāng)回調(diào)函數(shù)運(yùn)行時(shí),前期的操作早結(jié)束了,錯(cuò)誤的執(zhí)行棧早就不存在了,傳統(tǒng)的錯(cuò)誤捕捉機(jī)制try…catch對(duì)于異步操作行不通,所以只能把錯(cuò)誤交給回調(diào)函數(shù)處理。

如果沒有發(fā)生錯(cuò)誤,回調(diào)函數(shù)的第一個(gè)參數(shù)就傳入null。這種寫法有一個(gè)很大的好處,就是說只要判斷回調(diào)函數(shù)的第一個(gè)參數(shù),就知道有沒有出錯(cuò),如果不是null,就肯定出錯(cuò)了。另外,這樣還可以層層傳遞錯(cuò)誤。

全局變量

Node提供兩個(gè)全局變量,都以兩個(gè)下劃線開頭。

__filename:指向當(dāng)前運(yùn)行的腳本文件名。

__dirname:指向當(dāng)前運(yùn)行的腳本所在的目錄。

核心模塊

http:提供HTTP服務(wù)器功能。
url:解析URL。
fs:與文件系統(tǒng)交互。
querystring:解析URL的查詢字符串。
child_process:新建子進(jìn)程。
util:提供一系列實(shí)用小工具。
path:處理文件路徑。
crypto:提供加密和解密功能,基本上是對(duì)OpenSSL的包裝。
核心模塊總是最優(yōu)先加載的。如果你自己寫了一個(gè)HTTP模塊,require("http")加載的還是核心模塊

commonjs

所有代碼都運(yùn)行在模塊作用域,不會(huì)污染全局作用域。
模塊可以多次加載,但是只會(huì)在第一次加載時(shí)運(yùn)行一次,然后運(yùn)行結(jié)果就被緩存了,以后再加載,就直接讀取緩存結(jié)果。要想讓模塊再次運(yùn)行,必須清除緩存。
模塊加載的順序,按照其在代碼中出現(xiàn)的順序。

require.main

require方法有一個(gè)main屬性,可以用來判斷模塊是直接執(zhí)行,還是被調(diào)用執(zhí)行。

直接執(zhí)行的時(shí)候(node module.js),require.main屬性指向模塊本身。

require.main === module
// true

調(diào)用執(zhí)行的時(shí)候(通過require加載該腳本執(zhí)行),上面的表達(dá)式返回false。

npm update

注意,從npm v2.6.1 開始,npm update只更新頂層模塊,而不更新依賴的依賴,以前版本是遞歸更新的。如果想取到老版本的效果,要使用下面的命令。

$ npm --depth 9999 update

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91045.html

相關(guān)文章

  • 前端每周清單第 41 期 : Node 與 Rust、OpenCV 的火花,網(wǎng)絡(luò)安全三事

    摘要:的網(wǎng)站仍然使用有漏洞庫上周發(fā)布了開源社區(qū)安全現(xiàn)狀報(bào)告,發(fā)現(xiàn)隨著開源社區(qū)的日漸活躍,開源代碼中包含的安全漏洞以及影響的范圍也在不斷擴(kuò)大。與應(yīng)用安全是流行的服務(wù)端框架,本文即是介紹如何使用以及其他的框架來增強(qiáng)應(yīng)用的安全性。 showImg(https://segmentfault.com/img/remote/1460000012181337?w=1240&h=826); 前端每周清單專注...

    syoya 評(píng)論0 收藏0
  • 前端資源系列(4)-前端學(xué)習(xí)資源分享&前端面試資源匯總

    摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...

    princekin 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...

    jsbintask 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...

    muddyway 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

zhaot

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<