Node.js简介

文章作者
目录

Node.js 是一个开源和跨平台的 JavaScript 运行时环境。它是几乎任何类型项目的流行工具!

Node.js 在浏览器之外运行 V8 JavaScript 引擎,它是 Google Chrome 的核心。这使得 Node.js 非常高效.

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

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

这允许 Node.js 处理数千个与单个服务器的并发连接,而​​不会引入管理线程并发的负担,这可能是错误的重要来源.

Node.js 具有独特的优势,因为数百万为浏览器编写 JavaScript 的前端开发人员现在除了客户端代码之外,还能够编写服务器端代码,而无需学习完全不同的语言.

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

示例 Node.js 应用程序

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

JS

要运行此代码段,请将其另存为 server.js 文件并在你的终端中运行 node server.js .-->

此代码首先包含 Node.js http 模块.

Node.js 有一个很棒的标准库,包括一流的网络支持.

httpcreateServer()方法创建一个新的HTTP服务器并返回它.

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

每当收到新请求时,都会调用request 事件 ,并提供两个对象:请求(一个 http.IncomingMessage 对象)和响应(一个 http.ServerResponse 对象).

这两个对象对于处理 HTTP 调用是必不可少的.

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

第二个用于将数据返回给调用者.

在这种情况下:

JS

我们将 statusCode 属性设置为 200,表示响应成功.

我们设置 Content-Type 标头:

JS

然后我们关闭响应,将内容作为参数添加到 end():

JS

更多例子

有关超越 hello world 的 Node.js 示例列表,请参阅 https://github.com/nodejs/examples .