为什么以及何时使用 Node.js?

可能的重复:
如何决定何时使用Node.js?

抱歉,如果我有点模棱两可,但我试图理解使用Node.js而不是其他服务器端语言的真正优势。

我是一个JavaScript爱好者,所以我可能会玩Node.js,但我想知道我是否应该在我的项目中使用它。


答案 1

它是 V8 之上的事件异步非阻塞 I/O 构建。

因此,我们拥有V8的所有性能提升,V8是Google JavaScript解释器。由于JavaScript性能竞赛尚未结束,您可以期望Google不断更新V8(免费)的性能。

我们有非阻塞 I/O,这只是执行 I/O 的正确方法。这基于事件循环,并对 I/O 使用异步回调。

它为您提供了有用的工具,例如创建HTTP服务器,创建TCP服务器,处理文件I / O。

它是一个低级的高性能平台,用于执行任何类型的I / O,而无需从头开始用C编写整个内容。而且由于非阻塞I / O,它的扩展性非常好。

因此,如果您想使用非阻塞 I/O 编写高度扩展和高效的应用程序,同时仍然具有可用的高级脚本语言,则需要使用 Node.js。如果需要,您可以通过在C中编写扩展来手动优化部分代码。

Node.js有很多操作系统库可以为您提供抽象,例如Express.js现在

你不想使用 Node.js如果你想(慢速)高级抽象为你做所有事情。如果您想要RAD,则不想使用Node.js。你不想使用Node.js如果你不能信任一个年轻的平台,要么是因为必须自己编写大量代码来做内置到其他框架中的事情,要么是因为你不能使用Node.js,因为API还不稳定,或者它是1.0以下版本。


答案 2

最常被引用的两个优点是:

  • JavaScript既是服务器端的,也是客户端的。需要学习的东西更少,上下文切换更少,并且能够跨双方重用代码。
  • 使用无阻塞 I/O 和 Chrome 的 V8 引擎,提供快速、高度可扩展的服务器。

但对我来说,最有趣的部分是这个领域发生的活动量。Node有很多非常有趣的想法正在开发中 - 请务必查看Node.js模块的列表