選擇Nodejs的N個理由

2014-10-03 09:23:55來源:InfoQ作者:馬德奎

首先,許多頂級企業(yè)都使用了Node.js,并且效果非常好,其中包括PayPal、Walmart、Ebay、Groupon和LinkedIn。這些企業(yè)在生產(chǎn)環(huán)境中大量使用了Node.js。

Caleb Madrigal是來自美國密爾沃基市的一名軟件顧問。四年前,他在聽說“將JavaScript用作服務(wù)器端語言”這樣的說法時,認為那是一個荒唐的想法。有那么多服務(wù)器端語言可供選擇,為什么要選JavaScript?這是他當時的想法。但現(xiàn)在,他在當前的項目中選用了JavaScript/Node.js。他近日撰文對自己的這一轉(zhuǎn)變進行了解釋。

首先,許多頂級企業(yè)都使用了Node.js,并且效果非常好,其中包括PayPal、Walmart、Ebay、Groupon和LinkedIn。這些企業(yè)在生產(chǎn)環(huán)境中大量使用了Node.js。Madrigal舉了PayPal的例子。PayPal針對他們網(wǎng)站上其中一個流量最大的應(yīng)用,對比了它的Node.js版本和Java版本,發(fā)現(xiàn)前者在多個方面優(yōu)于后者,并最終決定由Java切換到JavaScript。InfoQ對此有過報道。

其次,Node.js有一個很棒的包管理系統(tǒng)NPM。通過運行“npm install 包名”幾乎可以安裝任何包/庫。另外,通過package.json文件可以跟蹤依賴關(guān)系。因此,Node.js庫很容易克隆,運行“npm install”可以安裝所有的依賴關(guān)系。

再次,Node.js社區(qū)異;钴S,總是有新的庫產(chǎn)生。這些庫非常好用,使JavaScript成為一個非常高效的平臺。

然后是Node.js 的REPL(read-evaluate-print loop)命令行。開發(fā)人員只需要在終端中輸入“node”,就可以對Node.js進行逐行測試。

最后,Node.js有一個很重要的特性:非阻塞函數(shù)。這就是為什么我們會在Node.js的代碼中看到大量的callbacks和promises。這種設(shè)計模式給Node.js帶來了非常優(yōu)異的性能。

此外,Node.js的最大一個優(yōu)點是:它是JavaScript。任何人都知道JavaScript,所以使用Node.js不需要學習一門新語言。有了它,開發(fā)人員可以只使用一種語言,瀏覽器端用JavaScript,服務(wù)器端用Node.js。在使用像MongoDB和CouchDB這樣存儲JSON對象的文檔數(shù)據(jù)庫時,這會極大地簡化數(shù)據(jù)庫和用戶界面之間的數(shù)據(jù)傳遞任務(wù)。

關(guān)鍵詞:Nodejs