当前位置: 首页 > 知识库问答 >
问题:

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

井洲
2023-03-14

我是新手,但最近我听到很多关于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个答案

商天逸
2023-03-14

您很好地总结了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和使用金字塔的长轮询。

 类似资料:
  • 问题内容: 已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我对这种东西是陌生的,但是最近我已经听到很多关于Node.js有多出色的信息。考虑到我一般喜欢使用jQuery和JavaScript有多少,我不禁想知道如何决定何时使用Node.js。我想到的Web应用程序有点像Bitly-需要一些内容,然后将其存档。 从过去几天我所做的所有作业中,我获得

  • 问题内容: 只是想了解在AngularJS中使用ngView和ngInclude的方法的确切区别。什么时候在另一个之上使用是正确的?谢谢。 问题答案: ngView与路由配合使用,并且对于角度SPA来说至关重要。它通常用于包含网站的主要内容,即每当用户单击链接时,页眉和页脚之间的位置就会改变。它与路由的集成意味着更改ngView内容也会更改控制器(取决于您的配置)。 ngInclude是通用的包含

  • 计算机编程是一种活动也是一种文化。不幸的事实是它不是一种看重身心健康的文化。从文化/历史缘由看(例如,在机器空载的晚上工作的需要),还有因为超过市场时间的压力和程序员的缺乏,计算机程序员传统上总是过度工作。我不认为你可以相信你听到的所有故事,但我认为一周工作60小时是常见的,50小时更多的像一个最小值。这意味着实际总是比需要的时间花费得更多。这对一个好的,不仅为他们自己负责而且为他们的同事负责的程

  • 本文向大家介绍如何决定使用 HashMap 还是 TreeMap?相关面试题,主要包含被问及如何决定使用 HashMap 还是 TreeMap?时的应答技巧和注意事项,需要的朋友参考一下 对于在 Map 中插入、删除、定位一个元素这类操作,HashMap 是最好的选择,因为相对而言 HashMap 的插入会更快,但如果你要对一个 key 集合进行有序的遍历,那 TreeMap 是更好的选择。

  • 问题内容: 我的Solr系统(Solr版本3.6.1)有两个核心。当我在专用的Solr服务器上调用以下命令行以添加文件然后为文件建立索引时: 我在文件中得到一个异常(等待大约6分钟后): (您可以在此消息的末尾看到它的详细输出)。 我试图修改锁的超时时间(通过将设置为),但这并不能解决问题。我没有使用任何自定义脚本,而只是使用Solr 3.1.6附带的脚本来添加和编制索引。 关于什么需要更改才能消

  • Values.java AmountDetail.java 当我在postman if子句中点击API时,它工作正常,但如果我想检查else,它会给出错误。我觉得铸造是这里的问题,但我不知道如何返回else块的值。