jk's notes
  • Node.js 简介

Node.js 简介

https://nodejs.org/en/learn/getting-started/introduction-to-nodejs

Node.js 是开源的, 跨平台的 js 运行时环境. 她是很受欢迎的工具, 她几乎可以完成任何类型的项目.

Node.js 使用 JavaScript V8 引擎. V8 引擎是谷歌浏览器的内核, 它可以脱离浏览器使用. 她能提升 JavaScript 性能.

一个 Node.js 运行于单个进程中, 每一个请求也不会创建新的线程. Node.js 提供了一套原生的异步 I/O 接口, 这些接口通过标准库来提供. 这些标准库是非阻塞的.

当 Node.js 执行 I/O 操作时, 例如从网络接收数据, 访问文件系统或数据库, Node.js 不会阻塞, 而待响应返回时立即恢复执行.

这使得 Node.js 可以在单线程中处理大量并发行为.

Node.js 还有一个优势, 就是前后通用, 一门语言.

Node.js 不会依赖浏览器对标准的实现, 新的语言规范都可以在 Node.js 中使用, 只用切换不同版本即可.

Node.js 应用的一个示例

在 web 服务器上的 Hello World 示例:

// mjs
import { createServer } from '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://${ host }:${ port }/`);
});

然后对代码进行了解释. 这里仅仅需要补充的是:

  1. 请求来到时, 会触发 request 事件, 会提供两个对象 http.IncomingMessage 和 http.ServerResponse, 分别表示请求对象, 和响应对象.
  2. 更多详细的案例可以参考: https://github.com/nodejs/examples
Last Updated:
Contributors: jk