首頁  >  文章  >  web前端  >  nodejs 能做什麼

nodejs 能做什麼

藏色散人
藏色散人原創
2021-11-22 13:38:5625474瀏覽

nodejs能做的事情:1、實作程式設計師的全端開發;2、統一公共類別庫,將程式碼標準化;3、非同步程式設計;4、處理IO密集型應用;5、建構複雜系統;6、實作對於記憶體堆疊的監控系統等等。

nodejs 能做什麼

本文操作環境:Windows7系統、nodejs10.16.2、Dell G3電腦。

nodejs 介紹:

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運作環境。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又有效率。 Node.js 的套件管理器 npm,是全球最大的開源程式庫生態系統。

nodejs 能做什麼?

1. Nodejs基於Javascript語言,不用再單獨新學一門陌生的語言,從而減低了學習的門檻。同時,Javascript語言在Web前端開發中至 關重要,特別HTML5的應用必須要使用,所以前後台統一語言,不僅可以實現程式設計師的全端開發,還可以統一公共類別庫,程式碼標準化。光是這一 點,Nodejs就已經贏得市場的青睞了。

2. Nodejs並沒有重新開發執行環境,而是選擇了目前最快的瀏覽器核心V8做為執行引擎,確保了Nodejs的效能和穩定性。

3. Nodejs的開發非常高效,而且程式碼簡單,得意於Nodejs的單執行緒機制。而Nodejs的另一個特點非同步編程,讓Nodejs處理IO密集應用有了明顯的優勢。個人感覺,用Nodejs比Java做Web開發更有效率10倍,比PHP的程式碼還要簡單。

4. Nodejs的社群正在壯大,不僅套件的數量正在快速增加,而且套件的品質也要明顯好於其他語言的。很多明星級的包,都是簡單而靈巧的,為了開發者的使用習慣而設 計。我最常使用到的工具包,如socket.io, moment.js, underscore.js, async.js, express.js, bower.js, grunt.js, forever.js…,確實在改變我先前的程式設計習慣。

當然,除了我使用Nodejs的理由,很多公司也都有自己的使用理由。

ebay選擇Nodejs的理由,可以歸納為以下4點:

動態語言:開發效率非常高,並且有能力建構複雜系統,如http:/ /ql.io。

效能和I/O負載:Nodejs非常好的解決了IO密集的問題,透過非同步IO來實現。

連接的記憶體開銷:每個Node.js進程可以支援超過12萬活躍的連接,每個連接消耗大約2K的記憶體。

操作性:實作了Nodejs對於記憶體堆疊的監控系統。

15個Nodejs應用程式場景

我們已經對Nodejs有了初步的了解,接下來看看Nodejs的應用程式場景。

1 Web開發:Express EJS Mongoose/MySQL

express 是一個輕量且靈活的Nodejs Web應用程式框架,它可以快速地建立網站。 Express框架建立在Nodejs內建的Http模組上,並對Http模組再包裝,從而實際Web請求處理的功能。

ejs是一個嵌入的Javascript模板引擎,透過編譯產生HTML的程式碼。

mongoose 是MongoDB的物件模型工具,透過Mongoose框架,可以進行存取MongoDB的操作。

mysql 是連接MySQL資料庫的通訊API,可以進行存取MySQL的操作。

  通常用Nodejs做Web開發,需要3個框架配合使用,就像Java中的SSH。

2 REST開發:Restify

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

3 Web聊天室(IM):Express http://Socket.io

socket.io一個是基於Nodejs架構體系的,支援websocket的協定用於時時通訊的一個軟體包。 socket.io 為跨瀏覽器建置即時應用提供了完整的封裝,socket.io完全由javascript實作。

4 Web爬蟲:Cheerio/Request

cheerio 是為伺服器特別客製化的,快速、靈活、封裝jQuery核心功能工具包。 Cheerio包括了 jQuery核心的子集,從jQuery庫中去除了所有DOM不一致性和瀏覽器不相容的部分,揭示了它真正優雅的API。 Cheerio工作在一個非常簡 單,一致的DOM模型之上,解析、操作、渲染都變得難以置信的高效。基礎的端對端的基準測試顯示Cheerio大約比JSDOM快八倍(8x)。 Cheerio封裝了@FB55相容的htmlparser,幾乎能夠解析任何的 HTML 和 XML document。

5 Web部落格:Hexo

Hexo 是一個簡單地、輕量地、基於Node的一個靜態部落格框架。透過Hexo我們可以快速創建自己的博客,只需要幾個命令就可以完成。

  發佈時,Hexo可以部署在自己的Node伺服器上面,也可以部署github上面。對於個人用戶來說,部署在github上好處頗多,不僅可以省 去伺服器的成本,還可以減少各種系統運維的麻煩事(系統管理、備份、網路)。所以,基於github的個人站點,正在開始流行起來….

6 Web論壇: nodeclub

Node Club 是用Node.js 和MongoDB 開發的新型社區軟體,介面優雅,功能豐富,小巧迅速, 已在Node.js 中文技術社群CNode 得到應用,但你完全可以用它搭建自己的社群。

7 Web幻燈片:Cleaver

Cleaver 可以產生基於Markdown的簡報。如果你已經有了一個Markdown的文檔,30秒就可以製作成投影片。 Cleaver是為Hacker準備的工具。

8 前端套件管理平台: bower.js

Bower 是twitter 推出的一款套件管理工具,基於nodejs的模組化思想,把功能分散到各個模組中,讓模組和模組之間存在聯繫,透過Bower 來管理模組間的這種聯繫。

9 OAuth認證:Passport

Passport項目 目是基於Nodejs的認證中間件。 Passport目的只是為了“登陸認證”,因此,程式碼乾淨,易於維護,可以輕鬆整合到其他的應用中。 Web應用 一般有2種登陸認證的形式:使用者名稱和密碼認證登陸,OAuth認證登陸。 Passport可以根據應用程式的特點,配置不同的認證機制。本文將介紹,使用者 名和密碼的認證登陸。

10 定時任務工具: later

Later 是一個基於Nodejs的工具庫,用最簡單的方式執行定時任務。 Later可以運行在Node和瀏覽器中。

11 瀏覽器環境工具: browserify

Browserify 的出現可以讓Nodejs模組跑在瀏覽器中,用require()的語法格式來組織前端的程式碼,載入npm的模組。在瀏覽器中,呼叫browserify編譯後的程式碼,同樣寫在