首頁  >  文章  >  web前端  >  總結Nodejs開發中常用的一些模組

總結Nodejs開發中常用的一些模組

青灯夜游
青灯夜游轉載
2021-04-15 10:12:542037瀏覽

本篇文章要為大家介紹一些Nodejs開發中常用的模組。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

總結Nodejs開發中常用的一些模組

收集了NodeJS開發中常用的一些模組。

MVC框架- Express

#Express 是一個輕量且靈活的Nodejs Web應用框架,它可以快速地搭建網站。 Express框架建立在Nodejs內建的Http模組上,並對Http模組再包裝,從而實際Web請求處理的 功能。它支援多種前端模板,如Jade, EJS等。它是T.J大神的作品,不過已經交由其它團隊維護了。 【相關推薦:《nodejs 教學》】

Koa是T.J大神的另一個作品,號稱下一 代NodeJS web框架。使用 koa 編寫 web 應用,透過組合不同的 generator,可以免除重複繁瑣的回呼函數嵌套,並大幅提升常用錯誤處理效率。 Koa 不在核心方法中綁定任何中間件,它只是提供了一個輕量優雅的函數庫,使得編寫 Web 應用變得得心應手。要注意的是:koa 依賴支援 generator 的 Node 環境,準確來說,是 node >= 0.11.9 的環境。安裝完成後,應確保使用 $ node app.js --harmony 或(--harmony-generators) 即,harmony 模式運行程式。個人覺得如果是正式產品中還是用Express比較可靠。

Rest開發- Restify

#restify 是一個基於Nodejs的REST應用框架,支援伺服器端和用戶端。 restify比起express更專注於REST服務,去除了express中的 template, render等功能,同時強化了REST協議使用,版本化支持,HTTP的異常處理。

hapi是一個用來建構基於 Node.js 的應用程式和服務的富框架,讓開發者把重點放在便攜可重複使用的應用邏輯而不是建構架構。內建輸入驗證、快取、認證和其他 Web 應用開發常用的功能,用來開發rest程式碼也是不錯的選擇。

前端模板- EJS

#EJS是一個強大又比較容易使用的前端模板,Express對EJS支援比較好,它的語法比較接近前端開發人員的使用方式。另外名氣比較大的前端模板是Jade,它和Express是同一個作者開發的,Express預設用的就是Jade模板,但是它的語法更接近後端語言的語法,前端開發人員很多時候難以適應,但是它的功能確實非常強大。

資料庫驅動程式- Mongoose

#MongoDB和NodeJS應該是最佳夥伴了,而Mongoose是MongoDB的物件模型工具,透過Mongoose框架,可以進行非常方便的存取MongoDB的操作。當然如果你對效能要求非常高的話,也可以考慮使用mongodb,它功能相對較少,比較底層一些,其實Mongoose就是基於它建構的。

其它:redismysql

Web Socket - Socket.IO

NodeJS的一個主要優點是高並發,因此NodeJS是Web Socket伺服器的理想選擇,而Socket.IO則Socket模組的不二選擇,可用於建置聊天室、客服系統等。 Socket.IO不僅提供了服務 器端程式碼,還提供了前端JS程式碼,可以非常方便的進行Web Socket開發,同時它相容於那些不支援Web Socket的瀏覽器。

日誌管理- Log4js

類似JAVA中的log4j,具有coloured console logging、可以設定輸出等級等功能,簡單易用,如果沒有複雜需求就夠使用了。 winston是一個功能更強大也更複雜的日誌模組,人氣比較高,對功能有追求的可以看看這個模組。

HTTP呼叫 Request

#可以理解為簡化的CURL模組,建立各種HTTP請求,支援授權驗證,其實功能還是非常多的,基本上滿足絕大部分需求。目前在NPM模組排行前幾名。

非同步流程控制- Async

NodeJS中大量的非同步callback巢狀估計讓許多人頭疼,尤其是多個非同步函數要求一定的呼叫順序時更是讓程式碼失控,Async可以非常好的解決這些問題,它可以使非同步流程同步化。 Q是另一個非常不錯的選擇,它是實作了promises介面。

#部署- forever

#forever可以看做是一個nodejs的守護程式,能夠啟動,停止,重啟我們的app應用,運作穩定,支援高並發,啟動/停止命令簡單,支援熱部署,宕機重啟,監控介面和日誌,叢集環境。 pm2是一個具有負載平衡功能的Node應用的進程管理器。當你要把你的獨立程式碼利用全部的伺服器上的所有CPU,並確保進程永遠都活著,0秒的重載。

如果你想要從作業系統的層次來解決NodeJS伺服器管理問題,可以參考:Linux系統服務upstart

當然開發時可以使用supervisor 啟動服務,它能夠監控文件,當有文件更新時自動重新啟動服務,其實Forever也有這個功能。

專案管理

grunt是一個自動化的建置工具,對於需要重複重複的任務,例如壓縮(minification)、編譯、單元測試、linting等,自動化工具可以減輕你的勞動,簡化你的工作。當你正確配 置好了任務,任務運行器就會自動幫你或你的小組完成大部分無聊的工作。並且它有大量的插件可以使用。我主要用它來做前端的自動化處理工作。

bower是twitter的另一個開源項目,使用nodejs開發,用於web套件管理。作為一個js依賴管理的工具,提供一種理想包管理方式,借助了npm的一些思想,為我們提供一個舒服的開發環境。

yeoman是Google的團隊和外部貢獻者團隊合作開發的,他的目標是透過Grunt(一個用於開發任務自動化的命令列工具)和Bower(一個HTML、 CSS、Javascript和圖片等前端資源的套件管理器)的包裝可為開發者建立一個易用的工作流程。 Yeoman的目的不僅是要為新專案建立工作流程,同時也是為了解決前端開發所面臨的許多嚴重問 題,例如零散的依賴關係。

定時任務- Cron

#cron是小巧的定時任務管理模組,可以滿足我們絕大部分需求,它支援標準的cron patterns,熟悉linux cron tab的語法就可以很容易上手。

另外一個名氣比較大且功能比較強大的定時模組是Later,對於功能要求比較高的可用用它,later的缺點是有點複雜,不像cron只要拿來就會用了。

工具包

underscore是一個JS工具庫,主要提供了對數組,對象,函數等一些基礎工具函數,可以同時在瀏覽器和NodeJS環境中運作。建議在每個項目中使用。

moment是一個日期工具庫,主要提供了對日期的解析,驗證,操作和格式化等,如果需要對日期作較多的操作或比較複雜的操作,則它是一個不錯的選擇,畢竟JS自帶的Date功能太弱了。

Connect是一系列的中間件的集合,包括日誌,session, cookie, body parser等,它做了大量HTTP相關的基礎性的工作,Express框架就依賴它進行工作的。

單元測試

Mocha,Karma,Jasmine

更多程式相關知識,請造訪:程式設計影片! !

以上是總結Nodejs開發中常用的一些模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除