Node.js 简介

Node.js 简介

Node.js 是一个开源且跨平台的 JavaScript 运行时环境。它是一款适用于几乎任何类型项目的热门工具!

Node.js 在浏览器之外运行 Google Chrome 的核心——V8 JavaScript 引擎。这使得 Node.js 具有极高的性能。

Node.js 应用运行在单个进程中,无需为每个请求创建新线程。Node.js 的标准库提供了一套异步 I/O 原语,防止 JavaScript 代码发生阻塞。此外,Node.js 中的库通常使用非阻塞范式编写。因此,在 Node.js 中,阻塞行为是例外而非惯例。

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

这使得 Node.js 能够在单个服务器上处理数以千计的并发连接,而无需引入管理线程并发的负担,因为那往往是导致 Bug 的重要原因。

Node.js 拥有独特的优势,因为数以百万计为浏览器编写 JavaScript 的前端开发者现在能够编写服务端代码,而无需学习一门全新的语言。

在 Node.js 中,可以使用新的 ECMAScript 标准而无需担心兼容性,因为你不必等待所有用户更新浏览器——你可以通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本,并且还可以通过运行带有特定标志的 Node.js 来启用特定的实验性功能。

Node.js 示例应用程序

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

CJSESMconst { createServer } = require('node:http');

const hostname = '127.0.0.1';

const port = 3000;

const server = createServer((req, res) => {

res.statusCode = 200;

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

res.end('Hello World');

});

server.listen(port, hostname, () => {

console.log(`Server running at http://${hostname}:${port}/`);

});JavaScript复制到剪贴板要运行此片段,请将其保存为 server.js 文件,并在终端中运行 node server.js。如果你使用代码的 mjs 版本,则应将其保存为 server.mjs 文件,并在终端中运行 node server.mjs。

此代码首先引入了 Node.js 的 http 模块。

Node.js 拥有非常棒的 标准库,包括对网络的一流支持。

http 的 createServer() 方法创建一个新的 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。