91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js有什么作用

發布時間:2021-12-03 14:26:49 來源:億速云 閱讀:232 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關Node.js有什么作用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、歡迎進入Node.js世界

1.DIRT(data-intensive real-time)表示數據密集型實時程序。因為Node自身在I/O上非常輕量,它善于將數據從一個管道混排或代理到另一個管道上,這能在處理大量請求時持有很多開放的鏈接,并且只占用一小部分內存。它的設計目標是保證響應能力。

二、構建有多個房間的聊天室程序

1.事件發射器:是跟某種資源相關聯的,它能向這個資源發送消息,也能從這個資源接收消息。資源可以連接遠程服務器,或者更抽象的東西,比如游戲中的角色

三、Node編程基礎

A.Node功能的組織及重用

1.Node模塊允許你從被引入文件中選擇要暴露給程序的函數和變量。如果模塊返回的函數或變量不止一個,那它可以通過設定exports對象的屬性來指明它們。但如果模塊只返回一個函數或變量,則可以設定module.exports屬性

2.require以你要用的模塊路徑為參數,以同步的方式尋找它,定位到這個模塊并加載文件中的內容,是Node中少數幾個同步I/O操作之一,不要在I/O密集的地方使用

3.module.exports可以對外提供單個變量、函數或者對象,如果創建了一個既有exports又有module.exports的模塊,那它會返回module.exports,而exports會被忽略

B.異步編程技術

1.兩種響應編輯管理方式:回調和事件監聽

  • 回調通常用來定義一次性響應的邏輯,它被當做參數傳給異步函數,描述了異步操作完成之后要做什么

  • 事件監聽器,本質上也是一個回調,不同的是,它跟一個概念實體(事件)相關聯。

2.一個Node HTTP服務器實例就是一個事件發射器,一個可以繼承、能夠添加事件發射及處理能力的類(EventEmitter)

3.回調時盡早從函數中返回。Node中大多數內置模塊在使用回調時都會帶有兩個參數:一個是用來放可能會發生的錯誤,另一個是放結果的

4.事件發射器會觸發事件,并且在那些事件被觸發時能處理它們。

5.在創建異步程序時,你必須密切關注程序的執行流程:事件輪詢的條件、程序變量,以及其他隨著程序邏輯執行而發生變化的資源

C.異步邏輯的順序化

1.讓一組異步任務順序執行的概念被稱為流程控制。分為:

  • 串行:需要一個接著一個做的任務

  • 并行:不需要一個接著一個做的任務

四、構建Node Web程序

A.HTTP服務器的基礎知識

1.在結束響應之前 ,你可以在請求的生命期內運行任何你想運行的異步邏輯。如果你沒能結束響應,請求會掛起,直到客戶端超時或一直處于打開狀態

B.構建RESTful Web服務

1.Buffer.byteLength(),字節長度,Content-Length應該是字節長度

C.提供靜態文件服務

1.*.pipe()管道

五、存儲Node程序中的數據

A.無服務器的數據存儲

1.內存存儲:存放少量經常使用的數據

2.基于文件的存儲:用文件系統存放數據,有并發問題

六、Connect

1.Connect中有一個掛載的概念,可以給中間件或整個程序定義一個路徑前綴

2.構建中間件時,你應該關注那些小型的、可配置的部分。構建大量微小的、模塊化的、可重用的中間件組件來搭成你的程序。保持中間件的小型化和專注性有助于將復雜的程序邏輯分解 成更小的組成部分

七、Connect自帶的中間件

1.解析cookie、請求主體和查詢字符串的中間件:cookieParser()bodyParser()、limit()、query()

2.實現Web程序核心功能的中間件:logger()、favicon()、methodOverride()、host()、session()

3.會話對象在各個請求間會被串行化為JSON對象:不允許循環屬性,不能用函數對象,Date對象無法正確串行化等

4.處理Web程序安全的中間件:basicAuth()、csrf()、errorHandler()

5.提供靜態文件服務的中間件:static()、compress()、directory()

*大部分已經不是自帶的了,參考:

https://github.com/senchalabs/connect

https://github.com/expressjs/basic-auth-connect

八、Express

1.Node中的__dirname用來確定當前運行的文件所在的目錄

2.*express全局命令安裝:sudo npm install -g express-generator(4.x以后)

九、Express進階

1.Node是單線程的,沒有線程本地存儲。對于HTTP服務器而言,請求和響應變量是唯一的上下文對象

十、測試Node程序

1.單元測試:

  • TDD:Mocha、nodeunit、assert模塊

  • BDD:Mocha、Vows、should.js

2.驗收測試也被稱為功能測試,它測試程序的輸出而不是邏輯,可以再提供一層防護,找出可能被單元測試漏掉的bug,包括Tobi、Soda

十一、Web程序模板

1.ejs:https://github.com/tj/ejs,nom install ejs

2.Hogan

3.jade

十二、部署Node程序并維持正常運行時間

1.讓Node保持運行,Forever工具:

  • sudo node install -g forever

  • forever start/stop server.js

2.Upstart工具,重啟崩潰程序,記錄日志等

  • sudo apt-get install upstart

  • sudo yum install upstart

  • sudo service xxxxx.conf (upstart配置文件)

3.Node增加了集群API,借助這個API程序可以在不同的同價格上同時運行多個“工人”,讓單個程序使用多核實現起來更容易

十三、超越Web服務器

1.由于Node的異步天性,它很適合用來執行那些在同步環境中比較困難或效率低下的I/O密集型任務

2.Socket.IO允許你用服務器和客戶端之間的雙向通訊通道編寫實時的Web程序。在基于瀏覽器的游戲、聊天程序和流媒體應用中非常流行

3.Buffer是Node給開發者準備的特殊數據類型,它像是一塊長度固定的原始二進制數據板坯,可以把緩沖區看做數組,只是它們的大小是固定的,并且只能存放數字0到255,能處理原始字節,所以可以用它們實現任何底層的協議

4.全局的process對象,包含當前進程的相關信息,比如傳給它的參數和當前設定的環境變量,每個Node進程都有一個單例的全局process對象,由所有模塊共享訪問

5.fs模塊,包含高層的ReadStream和WriteStream等,大部分Node文檔都指向了對應man頁面中的C函數解釋上(擴展模塊:fstream模塊,filed模塊)

6.繁衍外部進程:

  • cp.exec(),在回調中繁衍命令并緩沖結果的高層API

  • cp.spawn(),將單例命令繁衍進Child-Process對象中的底層API

  • cp.fork(),用內置的IPC通道繁衍額外Node進程的特殊方法

7.解析命令行參數:process.argv

關于“Node.js有什么作用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼和浩特市| 盐津县| 汽车| 蓝田县| 于田县| 清河县| 阿克| 千阳县| 宜阳县| 寿光市| 兴国县| 吉木萨尔县| 炉霍县| 舞钢市| 浪卡子县| 延吉市| 中山市| 丰县| 宁国市| 望城县| 吐鲁番市| 亳州市| 正安县| 嘉义市| 富民县| 搜索| 神木县| 镇安县| 高要市| 鄱阳县| 德兴市| 隆化县| 黄平县| 吕梁市| 商洛市| 虞城县| 富蕴县| 台州市| 陇西县| 邳州市| 石阡县|