我对这类东西很陌生,但最近我听到了很多关于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等强大的王者。我知道这确实取决于一个人对语言的专业知识,但我的问题更多地属于一般范畴:什么时候使用特定的框架,它特别适合什么类型的问题?
如果您的应用程序主要使用webapi或其他io通道,提供或接受用户界面,node.js可能是您的最佳选择,特别是如果您想最大限度地发挥可伸缩性,或者如果您的主要语言是javascript(或javascript转译器)。如果您构建微服务,node.js也可以。Node.js也适用于任何小型或简单的项目。
它的主要卖点是让前台人员负责后端工作,而不是典型的分工。另一个合理的卖点是,如果您的员工从一开始就面向javascript。
然而,超过某一点后,如果没有强制模块化、可读性和流控制的可怕技巧,就无法扩展代码。尽管有些人喜欢这些黑客,尤其是来自事件驱动的javascript背景,但他们似乎很熟悉或可以原谅。
特别是,当您的应用程序需要执行同步流时,您会开始使用半生不熟的解决方案,这会大大降低开发过程的速度。如果应用程序中有计算密集型部分,请谨慎选择(仅)node.jshttp://koajs.com/与我最初使用node.js或编写这篇文章时相比,其他新奇之处减轻了这些原本棘手的方面。
如果您的应用程序主要使用webapi或其他io通道,提供或接受用户界面,node.js可能是您的最佳选择,特别是如果您想最大限度地发挥可伸缩性,或者如果您的主要语言是javascript(或javascript转译器)。如果您构建微服务,node.js也可以。Node.js也适用于任何小型或简单的项目。
它的主要卖点是让前台人员负责后端工作,而不是典型的分工。另一个合理的卖点是,如果您的员工从一开始就面向javascript。
然而,超过某一点后,如果没有强制模块化、可读性和流控制的可怕技巧,就无法扩展代码。尽管有些人喜欢这些黑客,尤其是来自事件驱动的javascript背景,但他们似乎很熟悉或可以原谅。
特别是,当您的应用程序需要执行同步流时,您会开始使用半生不熟的解决方案,这会大大降低开发过程的速度。如果应用程序中有计算密集型部分,请谨慎选择(仅)node.jshttp://koajs.com/与我最初使用node.js或编写这篇文章时相比,其他新奇之处减轻了这些原本棘手的方面。
没有什么比银弹更棒的了。每件事都伴随着一些相关的成本。就好像你吃了油腻的食物,你会损害你的健康,而健康的食物不会像油腻的食物一样含有香料。无论他们想要健康还是食物中的香料,都是个人的选择。Node.js考虑在特定场景中使用的方式相同。如果你的应用程序不适合这种情况,你就不应该在你的应用开发中考虑它。我只是把我的想法放在同一点上:
何时使用Node.JS
如果服务器端代码需要很少的cpu周期。在另一个世界中,您正在执行非阻塞操作,并且没有消耗大量CPU周期的繁重算法/作业。如果您来自Javascript后台,并且能够像客户端JS一样轻松编写单线程代码。
何时不使用Node.JS
您的服务器请求取决于消耗大量CPU的算法/作业。
Node.JS的可扩展性考虑
Node.JS本身并没有利用底层系统的所有核心,默认情况下它是单线程的,您必须自己编写逻辑以利用多核心处理器并使其成为多线程的。
Node.JS替代方案
还有其他选项可以代替Node.JS,但Vert.x似乎很有前途,并且有很多其他功能,如多边形和更好的可扩展性考虑。