Node.js最新6.10.3版本是一個基於Chrome V8引擎的JavaScript運行時。 Node.js使用高效、輕量級的事件驅動、非阻塞 I/O 模型。Node.js 的生態係統是目前最大的開源包管理係統。
Node.js 是一套用來編寫高性能網絡服務器的 JavaScript 工具包,一係列的變化由此開始。比較獨特的是,Node.js 會假設你是在 POSIX 環境下運行它 Linux 或 Mac OS X。如果你是在 Windows 下,那就需要安裝 MinGW 以獲得一個仿 POSIX 的環境。在 Node 中,Http 是首要的。Node 為創建 http 服務器作了優化,所以你在網上看到的大部分示例和庫都是集中在 web 上(http 框架、模板庫等)。
它對什麼有好處?
正如您此前所看到的,Node 非常適合以下情況:在響應客戶端之前,您預計可能有很高的流量,但所需的服務器端邏輯和處理不一定很多。Node 表現出眾的典型示例包括:
RESTful API
提供 RESTful API 的 Web 服務接收幾個參數,解析它們,組合一個響應,並返回一個響應(通常是較少的文本)給用戶。這是適合 Node 的理想情況,因為您可以構建它來處理數萬條連接。它仍然不需要大量邏輯;它本質上隻是從某個數據庫中查找一些值並將它們組成一個響應。由於響應是少量文本,入站請求也是少量的文本,因此流量不高,一台機器甚至也可以處理最繁忙的公司的 API 需求。
Twitter 隊列
想像一下像 Twitter 這樣的公司,它必須接收 tweets 並將其寫入數據庫。實際上,每秒幾乎有數千條 tweet 達到,數據庫不可能及時處理高峰時段所需的寫入數量。Node 成為這個問題的解決方案的重要一環。如您所見,Node 能處理數萬條入站 tweet。它能快速而又輕鬆地將它們寫入一個內存排隊機製(例如 memcached),另一個單獨進程可以從那裏將它們寫入數據庫。Node 在這裏的角色是迅速收集 tweet,並將這個信息傳遞給另一個負責寫入的進程。想象一下另一種設計(常規 PHP 服務器會自己嚐試處理對數據庫本身的寫入):每個 tweet 都會在寫入數據庫時導致一個短暫的延遲,因為數據庫調用正在阻塞通道。由於數據庫延遲,一台這樣設計的機器每秒可能隻能處理 2000 條入站 tweet。每秒處理 100 萬條 tweet 則需要 500 個服務器。相反,Node 能處理每個連接而不會阻塞通道,從而能夠捕獲盡可能多的 tweets。一個能處理 50,000 條 tweet 的 Node 機器僅需 20 台服務器即可。
電子遊戲統計數據
如果您在線玩過《使命召喚》這款遊戲,當您查看遊戲統計數據時,就會立即意識到一個問題:要生成那種級別的統計數據,必須跟蹤海量信息。這樣,如果有數百萬玩家同時在線玩遊戲,而且他們處於遊戲中的不同位置,那麼很快就會生成海量信息。Node 是這種場景的一種很好的解決方案,因為它能采集遊戲生成的數據,對數據進行最少的合並,然後對數據進行排隊,以便將它們寫入數據庫。使用整個服務器來跟蹤玩家在遊戲中發射了多少子彈看起來很愚蠢,如果您使用 Apache 這樣的服務器,可能會 有一些有用的限製;但相反,如果您專門使用一個服務器來跟蹤一個遊戲的所有統計數據,就像使用運行 Node 的服務器所做的那樣,那看起來似乎是一種明智之舉。
module:
The module loading global fallback to the Node executable's directory now works correctly on Windows. (Richard Lau) #9283
src:
fix base64 decoding in rare edgecase (Nikolai Vavilov) #11995
tls:
(Trevor Norris) #11947
(Ben Noordhuis) #11898
(jBarz) #11776
fix rare segmentation faults when using TLS
76.4M / 03-25
立即下載55M / 06-05
立即下載237.9M / 04-13
立即下載140.5M / 03-06
立即下載900.9M / 03-02
立即下載96.2M / 07-06
立即下載311.2M / 07-06
立即下載335M / 07-06
立即下載200M / 07-06
立即下載413.8M / 07-06
立即下載353.9M / 06-05
立即下載131.8M / 04-13
立即下載230.8M / 03-03
立即下載195.6M / 03-03
立即下載165.4M / 03-03
立即下載45.6M / 09-08
立即下載665.2M / 07-06
立即下載2.84G / 07-06
立即下載93M / 07-06
立即下載338.3M / 07-06
立即下載1.38G / 07-26
立即下載488.3M / 07-16
立即下載109.8M / 06-03
立即下載142M / 01-08
立即下載1.2M / 11-23
立即下載548.8M / 04-13
立即下載1.6M / 04-13
立即下載1.48G / 03-18
立即下載646.6M / 03-03
立即下載133.7M / 03-03
立即下載325.8M / 06-07
立即下載60M / 04-29
立即下載254M / 04-25
立即下載659M / 04-23
立即下載1M / 12-26
立即下載253.4M / 12-08
立即下載253M / 12-08
立即下載1.19G / 11-16
立即下載110.5M / 04-23
立即下載26.7M / 03-16
立即下載488.3M / 07-16
立即下載248.9M / 12-08
立即下載248.9M / 12-08
立即下載201.2M / 04-13
立即下載100.6M / 03-06
立即下載148.9M / 03-06
立即下載1.12G / 07-06
立即下載1.25G / 07-06
立即下載9.48G / 07-06
立即下載50KB / 07-06
立即下載116.2M / 04-10
立即下載1.92G / 04-17
立即下載201.5M / 04-13
立即下載7.31G / 07-01
立即下載94.3M / 07-06
立即下載2.48G / 07-06
立即下載7.63G / 07-06
立即下載1M / 07-06
立即下載778.1M / 07-06
立即下載509.7M / 07-06
立即下載561.8M / 07-11
立即下載1.32G / 01-19
立即下載72M / 07-06
立即下載548.7M / 07-06
立即下載1.00G / 07-06
立即下載9.13G / 07-06
立即下載126.2M / 07-06
立即下載72M / 07-06
立即下載105.1M / 07-06
立即下載132M / 07-06
立即下載