Node.js简介

这篇文章是服务器端JavaScript运行时环境Node.js的入门指南。 Node.js建立在Google Chrome V8 JavaScript引擎之上,主要用于创建Web服务器-但不仅限于此

Node.js是一个的运行时环境JavaScript服务器

Node.js是开放源代码,跨平台的,自2009年问世以来,它已广受欢迎,并在Web开发领域中发挥着重要作用。如果GitHub星星是一个受欢迎程度的指标,那么拥有58000多个星星就意味着非常受欢迎。

Node.js在浏览器之外运行V8 JavaScript引擎(Google Chrome的核心)。 Node.js能够利用使(并将继续制造)Chrome JavaScript运行时迅速发展的工程师的工作,这使Node.js能够从巨大的性能改进和即时编译中受益。 V8执行。因此,在Node.js中运行的JavaScript代码可以变得非常出色。

Node.js应用程序由单个进程运行,而无需为每个请求创建一个新线程。 Node在其标准库中提供了一组异步I / O原语,这些原语将防止JavaScript代码被阻塞,并且通常,Node.js中的库是使用非阻塞范式编写的,从而使阻塞行为成为异常而不是常规行为。

当Node.js需要执行I / O操作(例如从网络读取,访问数据库或文件系统)而不是阻塞线程时,Node.js将在响应返回时恢复操作,而不是浪费CPU周期等待。

这使Node.js可以在一台服务器上处理数千个并发连接,而不会带来管理线程并发的负担,这将是漏洞的主要来源。

Node.js具有独特的优势,因为数百万为浏览器编写JavaScript的前端开发人员现在可以运行服务器端代码和前端代码,而无需学习完全不同的语言。

在Node.js中,新ECMAScript可以毫无问题地使用标准,因为您不必等待所有用户更新其浏览器-您可以通过更改Node.js版本来决定要使用哪个ECMAScript版本,还可以启用特定的实验性功能通过运行带有标志的Node的功能。

Node.js有大量的库

npm其简单的结构帮助node.js生态系统激增,现在npm注册表托管了近500.000个您可以自由使用的开源软件包。

一个示例Node.js应用程序

最常见的Node.js的Hello World示例是Web服务器:

const http = require('http')

const hostname = ‘127.0.0.1’ const port = 3000

const server = http.createServer((req, res) => { res.statusCode = 200 res.setHeader(‘Content-Type’, ‘text/plain’) res.end(‘Hello World\n’) })

server.listen(port, hostname, () => { console.log(Server running at http://</span><span style="color:#e6db74">${</span><span style="color:#a6e22e">hostname</span><span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span><span style="color:#a6e22e">port</span><span style="color:#e6db74">}</span><span style="color:#e6db74">/) })

要运行此代码段,请将其另存为server.js归档并运行node server.js在您的终端中。

此代码首先包含Node.jshttp模块

Node.js令人赞叹标准库,包括对网络的一流支持。

createServer()的方法http创建一个新的HTTP服务器并返回它。

服务器设置为侦听指定的端口和主机名。服务器就绪后,将调用回调函数,在这种情况下,通知我们服务器正在运行。

每当收到新请求时,request事件被称为提供了两个对象:一个请求(一个http.IncomingMessage对象)和响应(一个http.ServerResponse目的)。

这两个对象对于处理HTTP调用至关重要。

第一个提供请求详细信息。在这个简单的示例中,没有使用它,但是您可以访问请求标头和请求数据。

第二个用于将数据返回给调用方。

在这种情况下

res.statusCode = 200

我们将statusCode属性设置为200,以指示响应成功。

我们设置Content-Type标头:

res.setHeader('Content-Type', 'text/plain')

然后结束响应,将内容添加为end()

res.end('Hello World\n')

Node.js框架和工具

Node.js是一个低级平台,为了使开发人员更轻松,更有趣,在Node.js上构建了成千上万个库。

随着时间的流逝,其中许多已成为受欢迎的选择。以下是我认为非常相关且值得学习的内容的不完整列表:

  • 表示,这是创建Web服务器的最简单但功能最强大的方法之一。其极简主义的方法不受限制,专注于服务器的核心功能,是其成功的关键。
  • 流星,这是一个功能非常强大的全栈框架,可以通过同构方法为您提供使用JavaScript构建应用,在客户端和服务器上共享代码的方法。一旦提供了所有功能的现成工具,现在就可以与前端库React集成在一起,Vue和角度。也可以用于创建移动应用。
  • 考阿由Express背后的同一个团队构建,其目标是在多年的知识基础上,变得更小,更小。新项目的产生是出于创建不兼容的更改而又不破坏现有社区的需要。
  • Next.js,用于渲染服务器端渲染的框架反应应用程序。
  • ,这是一种非常轻巧的服务器,用于创建异步HTTP微服务。
  • 套接字,是用于构建网络应用程序的实时通信引擎。

免费下载我的Node.js手册


更多节点教程: