Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,使 JS 能在服务器端运行;它非语言也非框架,而是提供 fs、http 等 API 的执行平台,核心为单线程+事件驱动+非阻塞 I/O,支持统一语言栈与庞大 npm 生态。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它让 JavaScript 能在服务器端运行,而不仅限于浏览器。 它不是一门语言,也不是框架,而是一个能让 JS 脱离浏览器、直接操作文件、网络、进程等系统资源的执行平台。
传统上 JS 只在浏览器里跑,靠浏览器提供的 API(比如 document、alert)工作。Node.js 把 JS 引擎(V8)单独拎出来,再配上自己实现的一套服务器级 API(如 fs 读写文件、http 创建服务器、path 处理路径),就构成了一个完整的后端运行环境。
它的核心特点是:
安装 Node.js 后(去 nodejs.org 下载安装),新建一个文件 server.js:
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello from Node.js!');
});
ser
ver.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
终端里执行:node server.js
打开浏览器访问 http://localhost:3000,就能看到响应。
说明:
require('http') 是加载 Node 内置的 HTTP 模块createServer 接收一个回调函数,每次有请求进来就会触发res.end() 发送响应并结束这次请求listen() 让服务器监听指定端口原生 http 模块太底层,一般项目会用框架。Express 是最流行的轻量级 Web 框架:
先初始化项目:
mkdir myapp && cd myapp
npm init -y
npm install express
然后写 app.js:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Welcome to Express!');
});
app.get('/api/users', (req, res) => {
res.json([{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }]);
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
运行:node app.js
现在访问 / 和 /api/users 就能拿到不同响应,支持路由、JSON 输出、中间件等常见功能。
写服务端 JS 和写前端 JS 有几个重要区别:
window、document、localStorage —— 这些是浏览器专属global(类似浏览器的 window)、__dirname、process、require 等 Node 特有全局变量和 APIrequire/module.exports),不是浏览器的 ES Module(虽然新版 Node 也支持 import)基本上就这些。不复杂但容易忽略——关键是理解 Node.js 是“让 JS 跑在服务器上的环境”,而不是 JS 本身变了。