我对这类东西很陌生,但最近我听到了很多关于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等强大的王者。我知道这确实取决于一个人对语言的专业知识,但我的问题更多地属于一般范畴:什么时候使用特定的框架,它特别适合什么类型的问题?


当前回答

我的作品:nodejs非常适合制作实时系统,如分析、聊天应用程序、api、广告服务器等。见鬼,我用nodejs和socket.io制作了我的第一个聊天应用程序,时间不到2小时,考试期间也是如此周

Edit

我开始使用nodejs已经好几年了,我用它制作了很多不同的东西,包括静态文件服务器、简单分析、聊天应用等等。这是我对何时使用nodejs的看法

何时使用

在制作强调并发性和速度的系统时。

仅套接字服务器,如聊天应用程序、irc应用程序等。社交网络强调实时资源,如地理位置、视频流、音频流等。处理小数据块的速度非常快,就像一个分析Web应用程序。作为公开仅REST api。

何时不使用

它是一个非常多功能的Web服务器,因此您可以在任何地方使用它,但可能不是这些地方。

简单的博客和静态网站。就像静态文件服务器一样。

记住,我只是吹毛求疵。对于静态文件服务器,apache更好,主要是因为它广泛可用。多年来,nodejs社区已经变得越来越大,越来越成熟,如果您有自己的托管选择,可以放心地说nodejs几乎可以在任何地方使用。

其他回答

我可以分享一些使用node js的地方和原因。

对于聊天、协作编辑等实时应用程序,我们最好使用nodejs,因为它是从服务器向客户端发送事件和数据的事件库。简单易懂,因为它是大多数人都知道的javascript基础。当前的大多数web应用程序都倾向于使用angular js和主干,使用节点很容易与客户端代码交互,因为两者都将使用json数据。有很多插件可用。

缺点:-

节点将支持大多数数据库,但最好的是mongodb,它不支持复杂的连接和其他。编译错误。。。开发人员应该以其他方式处理每一个异常,如果任何error accord应用程序将停止工作,我们需要再次手动或使用任何自动化工具启动它。

结论:-Nodejs最适合用于简单和实时应用程序。。如果您有非常大的业务逻辑和复杂的功能,最好不要使用nodejs。如果您想构建一个应用程序以及聊天和任何协作功能。。节点可以用在特定的部件中,并保留下来。

我的作品:nodejs非常适合制作实时系统,如分析、聊天应用程序、api、广告服务器等。见鬼,我用nodejs和socket.io制作了我的第一个聊天应用程序,时间不到2小时,考试期间也是如此周

Edit

我开始使用nodejs已经好几年了,我用它制作了很多不同的东西,包括静态文件服务器、简单分析、聊天应用等等。这是我对何时使用nodejs的看法

何时使用

在制作强调并发性和速度的系统时。

仅套接字服务器,如聊天应用程序、irc应用程序等。社交网络强调实时资源,如地理位置、视频流、音频流等。处理小数据块的速度非常快,就像一个分析Web应用程序。作为公开仅REST api。

何时不使用

它是一个非常多功能的Web服务器,因此您可以在任何地方使用它,但可能不是这些地方。

简单的博客和静态网站。就像静态文件服务器一样。

记住,我只是吹毛求疵。对于静态文件服务器,apache更好,主要是因为它广泛可用。多年来,nodejs社区已经变得越来越大,越来越成熟,如果您有自己的托管选择,可以放心地说nodejs几乎可以在任何地方使用。

我认为没有人提到Node.js的另一个伟大之处是它的社区、包管理系统(npm)以及存在的模块数量,只需将它们包含在package.json文件中即可。

使用NodeJS的原因:

它运行Javascript,因此您可以在服务器和客户端上使用相同的语言,甚至可以在它们之间共享一些代码(例如,用于表单验证或在任意一端呈现视图)与传统的多线程Java或ROR框架相比,单线程事件驱动系统即使在一次处理大量请求时也很快,而且很简单。通过NPM可访问的软件包数量不断增加,包括客户端和服务器端库/模块,以及用于web开发的命令行工具。其中大多数都方便地托管在github上,有时您可以在那里报告问题并在数小时内找到解决方案!一切都在一个屋檐下,有标准化的问题报告和轻松的分叉,这很好。它已经成为运行Javascript相关工具和其他web相关工具的实际标准环境,包括任务运行器、缩小器、美化器、linter、预处理器、打包器和分析处理器。它似乎非常适合于原型设计、敏捷开发和快速产品迭代。

不使用NodeJS的原因:

它运行Javascript,没有编译时类型检查。对于大型、复杂的安全关键系统或项目,包括不同组织之间的协作,一种鼓励契约接口并提供静态类型检查的语言可能会从长远来看为您节省一些调试时间(和爆炸)。(虽然JVM被设置为null,但请为您的核反应堆使用Haskell。)除此之外,NPM中的许多软件包都有点生涩,而且仍在快速开发中。一些旧框架的库已经经历了十年的测试和错误修复,现在非常稳定。Npmjs.org没有对软件包进行评级的机制,这导致了软件包的激增,这些软件包或多或少都在做同样的事情,其中很大一部分不再被维护。嵌套回调地狱。(当然,有20种不同的解决方案……)不断增长的包池可能会使一个NodeJS项目与下一个项目截然不同。由于有大量的可用选项(例如Express/Sails.js/Metator/Deby),实现方式存在很大的差异。这有时会使新开发人员更难加入Node项目。与加入现有项目的Rails开发人员相比,他应该能够很快熟悉应用程序,因为所有Rails应用程序都被鼓励使用类似的结构。处理文件可能有点麻烦。在其他语言中很琐碎的事情,比如从文本文件中读取一行,对于Node.js来说是非常奇怪的,因此有一个StackOverflow问题,有80多个赞成票。从CSV文件中一次读取一条记录没有简单的方法。等

我喜欢NodeJS,它很快,很狂野,很有趣,但我担心它对可证明的正确性没什么兴趣。让我们希望我们最终能够将这两个世界中最好的结合起来。我很想知道未来会有什么替代Node…:)

我有一个真实世界的例子,我使用过Node.js。我所在的公司有一个客户想要一个简单的静态HTML网站。该网站用于使用PayPal销售一件物品,客户还希望有一个显示售出物品数量的柜台。客户预计会有大量访客访问本网站。我决定使用Node.js和Express.js框架制作计数器。

Node.js应用程序很简单。从Redis数据库中获取已售出物品的数量,在物品售出时增加计数器,并通过API向用户提供计数器值。

在本例中我选择使用Node.js的一些原因

它非常轻便和快速。在三个星期内,这个网站的访问量超过了200000次,服务器资源已经能够处理这一切。计数器很容易做到实时。Node.js易于配置。有很多模块可以免费使用。例如,我找到了PayPal的Node.js模块。

在本例中,Node.js是一个很棒的选择。