這篇文章主要為大家展示了“nodejs能做的事情有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“nodejs能做的事情有哪些”這篇文章吧。
nodejs能做的事情:1、實現程序員的全棧開發;2、統一公共類庫,將代碼標準化;3、異步編程;4、處理IO密集型應用;5、構建復雜系統;6、實現對于內存堆棧的監控系統等等。
本文操作環境: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模型之上,解析、操作、渲染都變得難以置信的高效?;A的端到端的基準測試顯示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編譯后的代碼,同樣寫在<script>標簽中。
用 Browserify 的操作,分為3個步驟。1. 寫node程序或者模塊, 2. 用Browserify 預編譯成 bundle.js, 3. 在HTML頁面中加載bundle.js。
12 命令行編程工具:Commander
commander 是一個輕巧的nodejs模塊,提供了用戶命令行輸入和參數解析強大功能。commander源自一個同名的Ruby項目。commander的特性:自 記錄代碼,自動生成幫助,合并短參數(“ABC”==“-A-B-C”),默認選項,強制選項,命令解析,提示符。
13 Web控制臺工具: tty.js
tty.js 是一個支持在瀏覽器中運行的命令行窗口,基于node.js平臺,依賴socket.io庫,通過websocket與Linux系統通信。特性:支持多 tab窗口模型; 支持vim,mc,irssi,vifm語法; 支持xterm鼠標事件; 支持265色顯示; 支持session。
14 客戶端應用工具: node-webwit
Node-Webkit 是NodeJS與WebKit技術的融合,提供一個跨Windows、Linux平臺的客戶端應用開發的底層框架,利用流行的Web技術 (Node.JS,JavaScript,HTML5)來編寫應用程序的平臺。應用程序開發人員可以輕松的利用Web技術來實現各種應用程序。Node- Webkit性能和特色已經讓它成為當今世界領先的Web技術應用程序平臺。
15 操作系統: node-os
NodeOS 是采用NodeJS開發的一款友好的操作系統,該操作系統是完全建立在Linux內核之上的,并且采用shell和NPM進行包管理,采用NodeJS不 僅可以很好地進行包管理,還可以很好的管理腳本、接口等。目前,Docker和Vagrant都是采用NodeOS的首個版本進行構建的。
以上是“nodejs能做的事情有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。