Node.js是一個(gè)Javascript運(yùn)行環(huán)境(runtime),發(fā)布于2009年5月,由Ryan Dahl開發(fā),實(shí)質(zhì)是對Chrome V8引擎進(jìn)行了封裝。Node.js對一些特殊用例進(jìn)行優(yōu)化,提供替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好。
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
V8引擎執(zhí)行Javascript的速度非???,性能非常好。 Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的平臺(tái), 用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js 使用事件驅(qū)動(dòng), 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
V8引擎執(zhí)行Javascript的速度非???,性能非常好。 Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的平臺(tái), 用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js 使用事件驅(qū)動(dòng), 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。
發(fā)展史
-
2009年2月,Ryan Dahl在博客上宣布準(zhǔn)備基于V8創(chuàng)建一個(gè)輕量級(jí)的Web服務(wù)器并提供一套庫。
-
2009年5月,Ryan Dahl在GitHub上發(fā)布了最初版本的部分Node.js包,隨后幾個(gè)月里,有人開始使用Node.js開發(fā)應(yīng)用。
-
2009年11月和2010年4月,兩屆JSConf大會(huì)都安排了Node.js的講座。
-
2010年年底,Node.js獲得云計(jì)算服務(wù)商Joyent資助,創(chuàng)始人Ryan Dahl加入Joyent全職負(fù)責(zé)Node.js的發(fā)展。
-
2011年7月,Node.js在微軟的支持下發(fā)布Windows版本。
Node.js的優(yōu)點(diǎn)
nodejs作為一個(gè)新興的前端框架,網(wǎng)站建設(shè)后臺(tái)語言,有很多吸引人的地方:
RESTful API
單線程
Node.js可以在不新增額外線程的情況下,依然可以對任務(wù)進(jìn)行并發(fā)處理 —— Node.js是單線程的。它通過事件輪詢(event loop)來實(shí)現(xiàn)并發(fā)操作,對此,我們應(yīng)該要充分利用這一點(diǎn) —— 盡可能的避免阻塞操作,取而代之,多使用非阻塞操作。
非阻塞IO
V8虛擬機(jī)
事件驅(qū)動(dòng)


