作者?DhanjivPandey?本文来源?授权中文翻译?作者twitter?译者主页这个问题在今天依然没有过时。#Q-01:什么是Node.js?简单来说,Node.js就是运行在服务器端的JavaScript。是一个构建在ChromeJavaScript运行时之上的平台。Node.js是一个事件驱动的I/O服务器端JavaScript环境。基于谷歌的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。Node.js是单线程的,并使用基于事件循环的并发模型。它不会阻塞代码执行(译者:非阻塞I/O模型),而是注册一个允许应用程序继续运行的回调。这意味着Node.js可以在不创建多个执行线程的情况下处理并发操作,因此它可以很好地扩展(译者:处理并发操作和扩展之间有什么直接关系?)。它是构建在分布式设备上运行的数据密集型实时程序的完美选择。以下是使用Node.js的最佳领域:调用I/O流应用程序数据密集型实时应用程序(DIRT)(译者:什么是DIRT?基于JSONAPI的应用程序单页应用程序(SPA))同时也不适合那些占用大量CPU的大型应用。#Q-02:Node.js的主要功能是什么?让我们来看看Node.js的一些关键特性。异步事件驱动IO有助于处理并发请求——Node.js的所有API都是异步的。这个特性意味着,如果Node.js收到某个Input/Output操作的请求,它会在后台执行该操作并继续处理其他请求,而不用等待上一个请求的响应结果。更快的代码执行-Node.js使用V8JavaScript引擎,与谷歌浏览器使用的引擎相同。Node对JavaScript引擎进行了包装,这使得V8引擎更快,因此Node.js中的请求处理也更快(译者:Node这么酷吗?我明白了)。单线程但高度可扩展-Node.js为其事件循环使用单线程模型。对这些事件的响应可能会或可能不会立即到达服务器。但是,这并不妨碍其他操作。从而使Node.js具有高度可扩展性。传统服务器创建有限数量的线程来处理请求,而Node.js创建一个线程来处理大量此类请求。Node.js库使用JavaScript语法——从开发人员的角度来看,这是Node.js的另一个重要特性。大多数开发人员已经精通JavaScript。因此,对于熟悉JavaScript的开发人员来说,在Node.js中进行开发变得更加容易。Node.js有一个活跃的、充满活力的社区——一个活跃的社区,它始终使Node.js与Web开发的最新趋势保持同步。无缓冲-Node.js应用程序从不缓冲任何数据。它们只是简单地以块的形式输出数据(译者:Buffering的意思是缓冲,对吧?)。#Q-02:请解释一下我们什么时候使用Node.js什么时候不使用?我们什么时候应该使用Node.js?使用Node.js非常适合开发需要较少CPU使用率的流式或基于事件的实时应用程序,例如聊天应用程序。游戏服务器。Node.js非常适合需要同时处理数千个用户请求的服务。适用于协作环境。适用于多人协同工作的环境。例如,他们发布他们的文件,通过签出和签入这些文件来修改它们。比如他们发布他们的文档,通过checkout和checkin修改(译者:这句话看不懂)。Node.js通过为文档的每次更改创建一个事件循环来支持这一点。Node.js的“事件循环”特性允许它同时处理多个事件而不会被阻塞。广告服务器。同样,我们的服务器可以处理数千个从中央主机下载广告的请求。Node.js是此类任务的理想解决方案。流媒体服务。使用Node.js的另一个理想场景是作为多媒体流服务器,其中客户端向服务器发送请求以从服务器下载不同的多媒体内容。.总而言之,当您需要高并发性但需要较少的CPU时间时,最好使用Node.js。最后但同样重要的是,由于Node.js在内部使用JavaScript,因此它最适合构建也使用JavaScript的客户端应用程序。什么时候不使用Node.js?无论如何,我们可以将Node.js用于各种应用程序。但它是一个单线程框架,如果应用程序需要长时间运行,我们不应该使用它。如果服务器正在进行一些计算,它将无法处理任何其他请求。因此,当需要较少的CPU密集型时间时,Node.js是最佳选择。#Q-04:Node.js开发可以使用哪些IDE?下面列出了最常用于开发node.js应用程序的IDE:Cloud9是一个免费的基于云的IDE,支持使用流行的编程语言(如Node.js、PHP、C++、Meteor等)进行应用程序开发。它提供了一个强大的在线代码编辑器,使开发者能够编写、运行和调试应用程序代码(译者:Cloud9是亚马逊提供的云编辑器)。JetBrainsWebStormWebStorm是一个轻量级但功能强大的JavaScriptIDE,非常适合使用Node.js进行客户端和服务器端开发。IDE提供的功能包括智能代码完成、导航、自动化和安全重构。此外,我们还可以使用IDE中提供的调试器、VCS、终端和其他工具。JetBrainsInteliJIDEA。它是一个强大的IDE,支持使用Node.js、Angular.js、JavaScript、HTML5等主流技术开发Web应用程序。为了让IDE能够进行Node.js开发,我们必须安装Node.js插件。它提供的功能包括语法突出显示、代码帮助、代码完成等。我们甚至可以运行和调试Node.js应用程序并直接在IDE中查看结果。它的JavaScript调试器提供条件断点、表达式计算和其他功能。KomodoIDE是一个跨平台的IDE,支持使用Node.js、Ruby、PHP、JavaScript等主要编程语言进行开发。它提供了多种功能,包括语法高亮、键盘快捷键、可折叠窗格、工作区、自动缩进、代码折叠和内置浏览器的代码预览。Eclipse它是一种流行的基于云的IDE,用于使用Java、PHP、C++等进行Web开发。您可以使用Node.js插件
