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

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

对不起,如果我有点模糊,但我想了解使用Node.js而不是其他服务器端语言的真正优势。

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

V8的 ontop顶级asynchronous非阻塞I / O构build。

所以我们拥有Google JavaScript解释器V8的所有性能提升。 由于JavaScript性能竞赛还没有结束,您可以期待Google不断更新V8上的性能(免费)。

我们有非阻塞的I / O,这是做I / O的正确方法。 这是基于事件循环,并为您的I / O使用asynchronouscallback。

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

这是一个低级别的高性能平台,可以完成任何types的I / O,而无需从头开始编写整个C语言。 由于非阻塞I / O,它可以很好地扩展。

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

Node.js有很多的操作系统库可以给你抽象,像Express.js和现在 。

如果你想(慢)高级抽象来为你做所有事情,你不想使用Node.js。 如果你想要RAD,你不想使用Node.js。 如果你不能相信一个年轻的平台,那么你不想使用Node.js,要么是因为要自己编写大量代码才能完成其他框架的构build,要么是因为不能使用Node .js,因为API还不稳定,或者是1.0版本的。

这两个最经常引用的优点是:

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

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

当你(或者即使你不是)JavaScript爱好者,你可以/应该使用Node.js有以下几个原因:

  • 这是一个低层次,轻量级的独立框架,它将JavaScript的强大function带入服务器端环境。
  • 如果您喜欢更高层次的抽象,那么就有大量的模块和npm包pipe理器,您可以在其中find各种即用型应用程序。
  • 快速/无阻碍的开发过程 – 例如,您不需要大量额外的工具来开始编写严肃的内容。
  • 大型开源社区充满了爱好者和非常有才华的人。
  • 用于创build实时的面向Web的应用程序 – 这就是(近)未来的地方。

就个人而言,我最有可能使用Node.js时:

  • 我想写一个不使用HTTP协议的服务器。
  • 我原型的服务器实现。
  • 我正在编写一个不期待大量stream量的服务器(尽pipe我从来没有在一个匹配的C ++实现旁边描述一个Node.js实现)。
  • 我想积极参与社区活动(这种活动显然非常迅速)。