编辑“︁
Node.js
”︁(章节)
跳转到导航
跳转到搜索
Template:Editnotice load/content
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==歷史== [[File:Ryan Dahl.jpg|thumb|Node.js的创始人[[瑞安·達爾]],摄于2010年]] Node.js于2009年写成,原始作者是美國軟體工程師[[瑞安·達爾]]({{lang|en|Ryan Dahl}})<ref name="training.com">{{cite web|title=About Node.js, and why you should add Node.js to your skill set?|url=http://blog.training.com/2016/09/about-nodejs-and-why-you-should-add.html|website=Training.com|publisher=Training.com|accessdate=23 October 2016|ref=training.com|archive-date=2017-04-01|archive-url=https://web.archive.org/web/20170401061100/http://blog.training.com/2016/09/about-nodejs-and-why-you-should-add.html|dead-url=yes}}</ref>。Node.js结合了[[Google]]的[[V8 (JavaScript引擎)|V8]]、事件驱动模式和低级[[I/O]][[应用程序接口|接口]]<ref name="b1">[https://books.google.com/books?id=ZH6bpbcrlvYC&printsec=frontcover&dq=nodejs&hl=en&sa=X#v=onepage&q=nodejs&f=false Professional Node.js: Building JavaScript Based Scalable Software] {{Wayback|url=https://books.google.com/books?id=ZH6bpbcrlvYC&printsec=frontcover&dq=nodejs&hl=en&sa=X#v=onepage&q=nodejs&f=false |date=20170324021220 }} , John Wiley & Sons, 01-Oct-2012</ref>,其设计灵感源自[[Flickr]]的一款上传进度栏:在上传过程中,浏览器并不清楚有多少文件已经发送到服务器,除非向服务器进行查询,于是达尔想出了一个更简便的方法<ref>{{cite web|url=http://devopsangle.com/2013/04/01/the-birth-of-node-where-did-it-come-from-creator-ryan-dahl-shares-the-history/|title=The Birth of Node: Where Did it Come From? Creator Ryan Dahl Shares the History|last=Harris|first=Amber|date=April 1, 2012|publisher=Devops Angle|accessdate=26 October 2013|archive-date=2014-10-18|archive-url=https://web.archive.org/web/20141018133031/http://devopsangle.com/2013/04/01/the-birth-of-node-where-did-it-come-from-creator-ryan-dahl-shares-the-history/|dead-url=yes}}</ref>。Node.js的开发和维护工作由达尔本人主持,而他所在的[[Joyent]]公司也提供了赞助<ref name="Google Groups post by Ryan Dahl about Joyent">{{cite web|url= https://groups.google.com/forum/#!topic/nodejs/lWo0MbHZ6Tc|title= Joyent and Node|author= Ryan Dahl|publisher= Google Groups|date= 2010-11-09|accessdate= 2015-02-05|archive-date= 2011-01-22|archive-url= http://arquivo.pt/wayback/20110122130054/https://groups.google.com/forum/#!topic/nodejs/lWo0MbHZ6Tc|dead-url= no}}</ref>。2009年11月8日,達爾在欧洲JSConf大会上展示了Node.js项目<ref name="b3">[https://books.google.com/books?id=KGt-FxUEj48C&pg=PT24&dq=nodejs&hl=en&sa=X#v=onepage&q=nodejs&f=false Sams Teach Yourself Node.js in 24 Hours] {{Wayback|url=https://books.google.com/books?id=KGt-FxUEj48C&pg=PT24&dq=nodejs&hl=en&sa=X#v=onepage&q=nodejs&f=false |date=20170323192039 }} , Sams Publishing, 05-Sep-2012</ref><ref>{{cite web|url=http://jsconf.eu/2009/speaker/speakers_selected.html|title=Ryan Dahl at JSConf EU 2009|accessdate=2017-05-04|archive-date=2017-05-14|archive-url=https://web.archive.org/web/20170514211032/http://www.jsconf.eu/2009/speaker/speakers_selected.html|dead-url=yes}}</ref><ref>{{cite web|url=https://www.youtube.com/watch?v=ztspvPYybIY|title=Ryan Dahl at JSConf EU 2009 Video|accessdate=2017-05-04|archive-date=2017-05-15|archive-url=https://web.archive.org/web/20170515113946/https://www.youtube.com/watch?v=ztspvPYybIY|dead-url=no}}</ref>,并受到了观众赞赏<ref>{{cite web|url=http://www.jsconf.eu/2009/video_nodejs_by_ryan_dahl.html|title=Video: Node.js by Ryan Dahl|publisher=|accessdate=2017-05-04|archive-date=2017-05-11|archive-url=https://web.archive.org/web/20170511080211/http://www.jsconf.eu/2009/video_nodejs_by_ryan_dahl.html|dead-url=no}}</ref>。在演讲中,达尔针对[[Apache HTTP Server]]和顺序编程方式提出了批评,认为Apache处理大量并发连接(10,000甚至更多)的可能性有限,而且顺序编程方式在多连接情况下会造成阻塞,或者消耗更多资源;而Node.js提供了基于事件驱动和非阻塞的接口,可用于编写高并发状态下的程序,而且JavaScript的匿名函数、闭包、回调函数等特性就是为事件驱动而设计的<ref>{{cite web | url=https://belitsoft.com/php-development-services/php7-vs-nodejs | title=PHP 7 vs Node.js? They Can Be Partners, Not Competitors For a Developer! | accessdate=21 December 2016 | archive-date=2017-02-23 | archive-url=https://web.archive.org/web/20170223211427/https://belitsoft.com/php-development-services/php7-vs-nodejs | dead-url=yes }}</ref>。 2010年1月,一款名为“[[npm]]”的[[软件包管理系统]]诞生<ref>{{cite web |url=https://github.com/npm/npm/releases?after=v0.1.1 |title=Earliest releases of npm |website=GitHub |accessdate=27 July 2016 |archive-date=2017-03-01 |archive-url=https://web.archive.org/web/20170301204041/https://github.com/npm/npm/releases?after=v0.1.1 |dead-url=no }}</ref>。npm使程序员能够更方便地发布和分享Node.js类库及源代码,而且简化了类库安装、升级与卸载的过程<ref name="b1"/>。Node.js最初只支持Linux和Mac OS X操作系统。2011年6月,微软和Joyent共同合作,把Node.js移植到了Windows系统上面<ref>{{cite web | url=https://nodejs.org/en/blog/uncategorized/porting-node-to-windows-with-microsofts-help/ | title=Porting Node to Windows With Microsoft's Help | accessdate=17 April 2016 | archive-date=2017-07-14 | archive-url=https://web.archive.org/web/20170714094815/https://nodejs.org/en/blog/uncategorized/porting-node-to-windows-with-microsofts-help/ | dead-url=yes }}</ref>,并且在7月发布了第一个正式支持Windows系统的版本。 2012年1月,达尔离开了Node.js项目,开发工作由他的同事以及npm创始人艾薩克·施呂特(Isaac Schlueter)继续主持<ref>{{cite web|url=//groups.google.com/forum/#!topic/nodejs/hfajgpvGTLY|title=New gatekeeper|last=Dahl|first=Ryan|accessdate=26 October 2013|archive-date=2011-01-22|archive-url=http://arquivo.pt/wayback/20110122130054/https://groups.google.com/forum/#!topic/nodejs/hfajgpvGTLY|dead-url=no}}</ref>。2014年2月,蒂莫西·费里斯(Timothy J. Fontaine)接任项目主管<ref>{{cite web|url=https://nodejs.org/en/blog/uncategorized/tj-fontaine-new-node-lead/|title=The Next Phase of Node.js|last=Schlueter|first=Isaac|date=January 15, 2014|accessdate=21 January 2014|archive-date=2017-07-14|archive-url=https://web.archive.org/web/20170714094920/https://nodejs.org/en/blog/uncategorized/tj-fontaine-new-node-lead/|dead-url=yes}}</ref>。 由于长期对Joyent的管理感到不满,Node.js核心开发者Fedor Indutny在2014年12月制作了[[复刻 (软件工程)|分支]]版本,并起名“io.js”。与Node.js相对的是,io.js采用开放管理模式进行管理<ref name="Krill, Paul">{{cite web | url=http://www.javaworld.com/article/2855639/open-source-tools/qanda-why-io-js-decided-to-fork-node-js.html | title=Why io.js Decided to Fork Node.js | publisher=JavaWorld | date=Dec 4, 2014 | accessdate=Dec 15, 2014 | author=Krill, Paul | archive-date=2017-06-30 | archive-url=https://web.archive.org/web/20170630072910/http://www.javaworld.com/article/2855639/open-source-tools/qanda-why-io-js-decided-to-fork-node-js.html | dead-url=yes }}</ref><ref name="iwtw">[http://www.infoworld.com/article/2855057/application-development/why-iojs-decided-to-fork-nodejs.html Q&A: Why io.js decided to fork Node.js] {{Wayback|url=http://www.infoworld.com/article/2855057/application-development/why-iojs-decided-to-fork-nodejs.html |date=20181106221731 }} , [[Infoworld]] Tech Watch</ref>,并计划始终采用最新版的[[V8 (JavaScript引擎)|V8引擎]]<ref>{{cite web | url=https://code.google.com/p/v8/issues/detail?id=3692#c3 | title=Issue 3692: function suddenly becomes | publisher=V8 JavaScript Engine Issues | author=Ben Noordhuis | date=Nov 12, 2014 | accessdate=2 February 2015 | archive-date=2015-11-01 | archive-url=https://web.archive.org/web/20151101215434/https://code.google.com/p/v8/issues/detail?id=3692#c3 | dead-url=no }}</ref><ref name="Mikeal, Rogers">{{cite web | url=https://medium.com/node-js-javascript/state-of-io-js-2b3094e6f923 | title=State of io.js | date=January 28, 2015 | accessdate=2 February 2015 | author=Mikeal, Rogers | archive-date=2015-08-30 | archive-url=https://web.archive.org/web/20150830022140/https://medium.com/node-js-javascript/state-of-io-js-2b3094e6f923 | dead-url=no }}</ref>。为了在用户、厂商和开发者之间取得平衡,Node.js基金会于2015年初成立。基金会得到了IBM、Intel、微软、Joyent等公司的支持。6月,Node.js和io.js开发者社区共同决定合并到Node.js基金会之下<ref>{{cite web|url=https://www.linuxfoundation.org/news-media/announcements/2015/06/nodejs-foundation-advances-community-collaboration-announces-new|title=Node.js Foundation Advances Community Collaboration, Announces New Members and Ratified Technical Governance|publisher=|accessdate=4 July 2015|deadurl=yes|archiveurl=https://web.archive.org/web/20150624075643/http://www.linuxfoundation.org/news-media/announcements/2015/06/nodejs-foundation-advances-community-collaboration-announces-new|archivedate=2015年6月24日}}</ref>。同年9月,Node 4.0发布,Node.js和io.js正式合并<ref name="#1">{{cite web|url=https://nodejs.org/en/blog/announcements/foundation-v4-announce/|title=Node.js Foundation Combines Node.js and io.js Into Single Codebase in New Release|publisher=|accessdate=28 Jan 2016|archive-date=2017-01-07|archive-url=https://web.archive.org/web/20170107002048/https://nodejs.org/en/blog/announcements/foundation-v4-announce/|dead-url=yes}}</ref>。4.0版引入了[[ES6]]的语言特性和“长期支持版本”的发布周期<ref name="#1"/>。到了2016年,io.js宣布不再发布新版本,并建议开发者换回Node.js<ref>[https://iojs.org/en/ Io.js, JavaScript I/O] {{Wayback|url=https://iojs.org/en/ |date=20161004160432 }} , ''"io.js has merged with the Node.js project again. There won't be any further io.js releases. All of the features in io.js are available in Node.js v4 and above."''</ref>。 {{Program_execution}}
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息