从某种角度看,Node 跟其他流行的Web 服务器,比如微软的互联网信息服务(IIS)或Apache,有很多共同点。然而更有趣的是探究它的不同之处,所以我们先从讨论它的不同开始。 Node 实现Web 服务器的方式跟Express 很像,也非常精简。Node 的搭建和配置非常容易,不像IIS 或Apache 要花费多年的时间才能掌握。但要让Node 服务器在生产环境中发挥出最优性能,进行调优也绝非易事,只不过是配置选项更简单,也更直接了。 Node 和传统的Web 服务器之间的另一个主要区别是:Node 是单线程的。乍一看可能觉得这是一种倒退。但事实证明,这是天才之举。单线程极大地简化了Web 程序的编写,如果你需要多线程程序的性能,只需启用更多的Node 实例,就可以得到多线程的性能优势。精明的读者可能会觉得我这是在放烟幕弹。毕竟,通过服务器并行(相对于程序的并行)的多线程只是把复杂性转移了,并没有消除它啊?也许吧,但依我之见,它是把复杂性放到了它应该存在的地方。更进一步说,随着云计算的日益流行,以及将服务器当作普通商品看待的趋势越来越明显,这种方式也变得更有意义了。IIS 和Apahce 确实强大,并且它们的设计目标也是要榨取如今强大的硬件设施的最后一点性能。但那是需要付出代价的,即它需要相当专业的设置和调优才能榨取那种性能。 至于编写程序的方式,相较于.NET 或Java 程序,Node 程序更像PHP 或Ruby。尽管Node 所用的JavaScript 引擎(谷歌的V8)确实会将JavaScript 编译为本地机器码(更像C 或C++),但这一操作是透明的1,所以从用户的角度来看,它表现的还是像纯粹的解释型语言一样。没有单独的编译步骤,这减少了维护和部署的麻烦。你所要做的只是更新JavaScript 文件,然后你的修改就自动生效了。 Node 程序的另一个好处是它的平台无关性。它不是第一个或唯一的平台无关的服务器技术,但平台无关的水平真的是良莠不齐。例如,你可以借助Mono 在Linux 上运行.NET程序,但这个过程会很痛苦。同样,你可以在Windows 服务器上运行PHP 程序,但一般不像在Linux 机器上设置那么容易。另一方面,在所有主流操作系统(Windows、OS X 和Linux)上设置Node 都易如反掌,并且协作也很容易。在网站设计团队中,经常会同时出现PC 和Mac。某些平台,比如.NET,对经常使用Mac 的前端开发人员和设计师来说是个挑战,会极大地影响协作性和工作效率。用几分钟(甚至几秒钟)的时间在任意一个操作系统上构建一个可运行服务器的梦想终于实现了。
Node与Express开发——1.5 Node:一种新型Web服务器
书名: Node与Express开发
作者: [美] Ethan Brown
出版社: 人民邮电出版社
译者: 吴海星 | 苏 文
出版年: 2015-1
页数: 276
定价: 69.00元
装帧: 平装
ISBN: 9787115380333