Node.js基礎(chǔ)入門

NodeJs介紹

NodeJs是構(gòu)建在V8引擎上的 JavaScript Runtime

Node.js uses an event-driven, non-blocking I/O model

非阻塞 I/O
  • 阻塞:I/O時進程休眠等待I/O完成后進行下一步
  • 非阻塞:I/O時函數(shù)立即返回,進程不等待I/O完成
事件驅(qū)動
  • I/O等異步操作結(jié)束后的通知
  • 觀察者模式

調(diào)試&項目初始化

線程:

進程內(nèi)一個相對獨立的,可調(diào)度的執(zhí)行單元,與同屬性一個進程的線程共享進程的資源

多線程:

啟動一個進程,在一個進程內(nèi)啟動多個線程,這樣,多個線程也可以一塊執(zhí)行多個任務(wù)

CPU密集 VS I/O密集
  • CPU 密集: 壓縮 解壓 加密 解密
  • I/O 密集: 文件操作 網(wǎng)絡(luò)操作 數(shù)據(jù)庫
環(huán)境
  • CommonJS 模塊管理規(guī)范

    1.每一個文件是一個模塊,有自己的作用域
    2.在模塊內(nèi)部module變量代表模塊本身
    3.module.exports屬性代表模塊對外接口

  • global

  • process

require 規(guī)則
  • /表示絕對路徑,./表示相對于當(dāng)前路徑
  • 支持 js,json,node 拓展名,不寫依次嘗試 build-in 模塊或各級node_modules 內(nèi)的第三方模塊
require 特性
  • module 被加載的時候執(zhí)行,加載后緩存
  • 一旦出現(xiàn)某個模塊被循環(huán)加載,就只輸出已經(jīng)執(zhí)行的部分,還未執(zhí)行的部分不會輸出
查看node_modules所在路徑

npm root -g

exports 和 module.exports之間的區(qū)別:

exports可以說是module.exports的快捷方式,但是使用上也會有所不同,exports在指向單個變量時與module.exports的功能是相同的,但是在指向一個json類型的變量時功能又是不同了,我們來看看代碼

module.exports = {
  a: 1,
  b: 2,
  test: 100
};

exports = {
  a: 1,
  b: 2,
  test: 100
};
全局變量 global:

1.CommonJS
2.Buffer,process, console
3.timer

基礎(chǔ)API


簡單Web Server


單元測試&發(fā)布


NodeJS爬蟲系列

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容