Node.js 是一个基于 Chrome V8 引擎的服务器端 JavaScript 运行时环境,提供文件系统、HTTP 服务等服务器级 API 和事件驱动的非阻塞 I/O 模型,使 JavaScript 能脱离浏览器执行后端任务。
Node.js 不是 JavaScript 的一种新语法,而是一个让 JavaScript 能在服务器端运行的运行时环境(runtime environment)。
它基于 Chrome 的 V8 引擎(就是浏览器里执行 JS 的那个高性能引擎),但剥离了浏览器环境,加入了文件系统、网络、进程等服务器所需的能力。简单说:Node.js = V8 引擎 + 服务器级 API(比如读文件、开 HTTP 服务)+ 事件驱动的非阻塞 I/O 模型。
传统 JavaScript 只能在浏览器里跑,依赖 DOM、window 等浏览器对象。Node.js 则提供了一套全新的全局对象和模块系统,比如:
动一个服务器保存下面代码为 server.js,然后终端运行 node server.js:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello from Node.js!');
});
server.listen(3000);
console.log('Server running on http://localhost:3000');
这时你访问 http://localhost:3000,就能看到响应——整个过程没用浏览器,纯靠 Node.js 执行 JS 代码完成。
JavaScript 语言标准(ECMAScript)没变,变的是它能调用哪些功能:
本质上,Node.js 把 JavaScript 从“客户端脚本语言”拓展成了“通用编程语言”。
基本上就这些。