一、Node.js 是單進程單線程應用程序,可是由於 V8 引擎提供的異步執行回調接口,經過這些接口能夠處理大量的併發,因此性能很是高。前端
Node.js 幾乎每個 API 都是支持回調函數的。node
Node.js 基本上全部的事件機制都是用設計模式中觀察者模式實現。npm
Node.js 單線程相似進入一個while(true)的事件循環,直到沒有事件觀察者退出,每一個異步事件都生成一個事件觀察者,若是有事件發生就調用該回調函數.json
二、node的模塊引入和導出設計模式
a、引入:瀏覽器
let demo = require ‘./demo.txt’;console.log(demo) 緩存
一、 ./表明的是當前目錄下,而後是2.js,須要注意的是,若是引入的是本地的文件,那麼必定要帶上路徑。併發
二、後綴是js時 能夠默認異步
三、有一些模塊是不須要帶路徑的,它們稱之爲核心模塊,何爲核心模塊函數
第一種是安裝好node就有的一些模塊,另一種是用npm安裝依賴的那些在node_modules文件夾下面的
四、模塊的加載機制: 文件名 > 文件名.js >文件名.json>文件名.node
與前端瀏覽器會緩存靜態腳本文件以提升性能同樣,Node對引入過的模塊都會進行緩存,以減小二次引入時的開銷。不一樣的地方在於,瀏覽器僅僅緩存,而Node緩存的是編譯和執行以後的對象。
b、導出:
let demo = ()=>{
console.log('demo')
}
module.exports = {
DEMO:demo
}