提问者:小点点

如何决定何时使用Node.js?


我是新手,但最近我听到很多关于Node.js有多好的消息。考虑到总体上我是多么热爱使用jQuery和JavaScript,我不禁想知道如何决定何时使用Node.js。我心目中的web应用程序类似于Bitly-获取一些内容,并将其存档。

从过去几天我一直在做的所有作业中,我获得了以下信息。node.js

  • 是一个命令行工具,可以作为常规web服务器运行,允许运行JavaScript程序
  • 使用great V8 JavaScript引擎
  • 当您需要同时做几件事时非常好
  • 是基于事件的,所以所有类似Ajax的精彩内容都可以在服务器端完成
  • 允许我们在浏览器和后端之间共享代码
  • 让我们与MySQL对话

我所接触到的一些资料来源是:

  • 深入node.js-介绍和安装
  • 了解NodeJS
  • 节点示例(archive.is)
  • 让我们制作一个Web应用程序:NodePad

考虑到Node.js几乎可以在Amazon的EC2实例上开箱即用地运行,我试图理解Node.js需要什么类型的问题,而不是PHP、Python和Ruby。我知道这实际上取决于一个人对一种语言的专业知识,但我的问题更多地属于一般的范畴:什么时候使用一个特定的框架,它特别适合于什么类型的问题?


共1个答案

匿名用户

您很好地总结了Node.js的优点。我的感觉是,Node.js特别适合那些希望维护从浏览器返回服务器的持久连接的应用程序。使用一种称为“长轮询”的技术,您可以编写一个将更新实时发送给用户的应用程序。在许多Web巨头(如Ruby on Rails或Django)上进行长时间轮询会在服务器上产生巨大的负载,因为每个活动客户机都会消耗一个服务器进程。这种情况相当于油污攻击。当您使用像node.js这样的东西时,服务器不需要为每个打开的连接维护单独的线程。

这意味着您可以在Node.js中创建一个基于浏览器的聊天应用程序,它几乎不需要系统资源就可以为大量客户机提供服务。任何时候您想要进行这种长轮询,Node.js都是一个很好的选择。

值得一提的是,Ruby和Python都有做这种事情的工具(分别是eventmachine和twisted),但Node.js做得特别好,而且是从头开始做的。JavaScript非常适合基于回调的并发模型,它在这方面表现出色。此外,能够使用客户端和服务器的本地JSON序列化和反序列化也是非常棒的。

我期待着在这里读到其他的答案,这是一个梦幻般的问题。

值得指出的是,Node.js也非常适合在客户机/服务器之间重用大量代码的情况。Meteor框架使这一点变得非常容易,许多人认为这可能是web开发的未来。我可以说,根据经验,在Meteor中编写代码非常有趣,其中很大一部分是花更少的时间来考虑如何重构数据,因此在浏览器中运行的代码可以轻松地操作它并将其传递回来。

这里有一篇关于金字塔和长轮询的文章,在gevent的帮助下很容易设置:TicTacToe和使用金字塔的长轮询。