我对这类东西很陌生,但最近我听到了很多关于Node.js有多好的消息。考虑到我非常喜欢使用jQuery和JavaScript,我不禁想知道如何决定何时使用Node.js。

从过去几天我做的所有作业中,我得到了以下信息。节点.js

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

我遇到的一些来源是:

深入Node.js–介绍和安装了解NodeJS按示例列出的节点(存档.is)让我们制作一个Web应用程序:NodePad

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


当前回答

没有什么比银弹更棒的了。每件事都伴随着一些相关的成本。就好像你吃了油腻的食物,你会损害你的健康,而健康的食物不会像油腻的食物一样含有香料。无论他们想要健康还是食物中的香料,都是个人的选择。Node.js考虑在特定场景中使用的方式相同。如果你的应用程序不适合这种情况,你就不应该在你的应用开发中考虑它。我只是把我的想法放在同一点上:

何时使用Node.JS

如果服务器端代码需要很少的cpu周期。在另一个世界中,您正在执行非阻塞操作,并且没有消耗大量CPU周期的繁重算法/作业。如果您来自Javascript后台,并且能够像客户端JS一样轻松编写单线程代码。

何时不使用Node.JS

您的服务器请求取决于消耗大量CPU的算法/作业。

Node.JS的可扩展性考虑

Node.JS本身并没有利用底层系统的所有核心,默认情况下它是单线程的,您必须自己编写逻辑以利用多核心处理器并使其成为多线程的。

Node.JS替代方案

还有其他选项可以代替Node.JS,但Vert.x似乎很有前途,并且有很多其他功能,如多边形和更好的可扩展性考虑。

其他回答

没有什么比银弹更棒的了。每件事都伴随着一些相关的成本。就好像你吃了油腻的食物,你会损害你的健康,而健康的食物不会像油腻的食物一样含有香料。无论他们想要健康还是食物中的香料,都是个人的选择。Node.js考虑在特定场景中使用的方式相同。如果你的应用程序不适合这种情况,你就不应该在你的应用开发中考虑它。我只是把我的想法放在同一点上:

何时使用Node.JS

如果服务器端代码需要很少的cpu周期。在另一个世界中,您正在执行非阻塞操作,并且没有消耗大量CPU周期的繁重算法/作业。如果您来自Javascript后台,并且能够像客户端JS一样轻松编写单线程代码。

何时不使用Node.JS

您的服务器请求取决于消耗大量CPU的算法/作业。

Node.JS的可扩展性考虑

Node.JS本身并没有利用底层系统的所有核心,默认情况下它是单线程的,您必须自己编写逻辑以利用多核心处理器并使其成为多线程的。

Node.JS替代方案

还有其他选项可以代替Node.JS,但Vert.x似乎很有前途,并且有很多其他功能,如多边形和更好的可扩展性考虑。

它可以用于

高度事件驱动且严重受I/O限制的应用程序处理与其他系统的大量连接的应用程序实时应用程序(Node.js是从一开始就为实时和简单而设计的使用。)应用程序可以处理来自其他来源的大量信息流高流量、可扩展的应用程序移动应用程序必须与平台API和数据库通信,而无需处理大量数据分析构建网络应用程序需要经常与后端通信的应用程序

在移动方面,黄金时段公司的移动解决方案依赖Node.js。看看为什么?

LinkedIn是一个杰出的用户。他们的整个移动堆栈都建立在Node.js上。他们从在每台物理机器上运行15个服务器和15个实例,到只运行4个实例,可以处理双倍的流量!

eBay推出了ql.io,这是一种用于HTTP API的web查询语言,它使用Node.js作为运行时堆栈。他们能够调整一个常规开发人员质量的Ubuntu工作站,以处理每个node.js进程超过120000个活动连接,每个连接消耗大约2kB内存!

沃尔玛将其移动应用程序重新设计为使用Node.js,并将其JavaScript处理推送到服务器。

更多信息请访问:http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/

简而言之:

Node.js非常适合具有大量并发连接的应用程序,每个请求只需要很少的CPU周期,因为事件循环(与所有其他客户端)在函数执行期间被阻塞。

关于Node.js中事件循环的一篇好文章是Mixu的技术博客:了解Node.js事件循环。

使用Node开始下一个项目的最重要原因。。。

所有最酷的男人都喜欢它。。。所以一定很有趣。你可以在冰箱里闲逛,并有很多Node冒险可以吹嘘。在云托管成本方面,你是个吝啬鬼。用Rails做过您讨厌IIS部署你以前的IT工作变得相当枯燥,你希望你在一个闪亮的新创业公司。

期待什么。。。

使用Express时,您将感到安全无忧,无需任何服务器膨胀软件。像火箭一样跑,而且伸缩性很好。你梦想着它,你安装了它。节点包repo npmjs.org是世界上最大的开源库生态系统。你的大脑会在嵌套回调的土地上扭曲时间。。。…直到你学会遵守诺言。Sequelize和Passport是您的API新朋友。调试大部分异步代码将得到。。。有趣的所有Noder掌握Typescript的时间。

谁使用它?

PayPal、Netflix、沃尔玛、LinkedIn、Groupon、优步、GoDaddy、道琼斯这就是他们切换到Node的原因。

Node非常适合快速原型,但我再也不会将其用于任何复杂的事情。我花了20年时间与编译器建立了关系,我真的很怀念它。节点对于维护您已经有一段时间没有访问过的代码尤其痛苦。类型信息和编译时错误检测是好事。为什么要扔掉这些?为了什么?当有东西向南移动时,堆栈的痕迹往往完全没有用。