本节摘要:Node.js 让 JavaScript 走出浏览器,Express 让它写后端更顺手。本节讲清两者的定位、核心特性(轻量、异步、npm 生态),以及"前后端同语言"的独特优势。
阅读完本节,你应当能够:
"为什么用 JavaScript 写后端?"——因为**"一套语言走天下"**:前端写 JavaScript,后端也用 JavaScript,不用切换语言心智。再加上 Express 的轻量与 npm 的海量生态,Node.js 成了轻量后端与全栈开发的热门选择。
Node.js 的定位链:
| 层 | 是什么 |
|---|---|
| Node.js | JavaScript 的服务器运行时 |
| Express | Node.js 最主流的 Web 框架 |
| 特性 | 说明 |
|---|---|
| 轻量 | 核心极简,按需加中间件 |
| 异步 | 事件驱动,高并发友好 |
| 生态 | npm 海量包 |
💡 关键直觉:Express 的哲学是"小而灵活"——不像 Spring/Django 全家桶,Express 只有核心,功能全靠中间件组装。灵活是它的灵魂。
| 框架 | 哲学 |
|---|---|
| Spring Boot | 企业级全配 |
| Django | 全栈全家桶 |
| Express | 轻量自由组装 |
| 场景 | 适合 |
|---|---|
| 轻量 API | 非常适合 |
| 前后端同语言 | 适合 |
| 实时应用 | 适合(异步) |
| 重型业务系统 | 偏轻需补组件 |
⚠️ 常见误区:以为 Node.js 只能做小项目。异步模型让它在 I/O 密集型场景很强——选型看场景,别按"大小"一刀切。
认识它了,下一节搭环境——环境搭建与项目初始化。
在展开细节前,先看 Express 应用的最小形态,感受"轻量框架"的直接。下面这段代码就是一个能跑的 Web 服务器:监听端口、定义路由、返回 JSON。整段代码没有任何配置文件和注解,一个文件就是整个应用。
// app.js —— Express 最小应用 const express = require('express') const app = express() app.get('/hello', (req, res) => { res.json({ message: 'Hello Express' }) }) app.listen(3000, () => { console.log('server running') })
这个例子展示了 Express 的三个特点:方法名直接对应 HTTP 动词(app.get 就是 GET 接口);处理函数拿到请求和响应两个对象(req、res);一个文件就能启动整个服务。相比前两章的框架,Express 的"直给"一目了然。
Q1:Node.js 和 Express 分别是什么?
Node.js 是让 JavaScript 在服务器上运行的"运行时"(相当于 Java 的 JDK、Python 的 CPython);Express 是运行在 Node 之上的 Web 框架(负责路由、请求响应、中间件等)。可以类比:Node 是"发动机",Express 是"驾驶舱"。没有 Node,Express 跑不起来;只有 Node 没有 Express,写 Web 服务要手撸底层协议,很麻烦。
Q2:"前后端同语言"为什么是巨大优势?
因为前端和后端都用 JavaScript,团队可以只维护一套语言心智:类型、语法、工具链(npm)通用,代码可以共享(比如校验逻辑写一份前后端复用),全栈工程师不用在两套语言之间切换。对中小团队和个人开发者来说,这个优势特别实在。当然,TypeScript 的出现让"同语言"的优势更加突出(类型安全),入门阶段可以先从 JavaScript 起步。
Q3:Node.js 适合做什么?
它特别适合 I/O 密集型的场景:Web API、实时应用(聊天、协作)、网关/代理、前后端同语言的全栈项目。因为异步模型在"大量等待 I/O"的场景下效率极高。但如果项目是 CPU 密集型(大量复杂计算),Node 的单线程模型反而吃亏(计算会阻塞事件循环),这时要评估加 Worker 线程或用其他语言。所以选型看场景,别一刀切。
Q4:npm 生态为什么是 Node 的优势?
npm 是全世界最大的软件包仓库,几乎任何需求都有现成库:Web 框架(Express/Koa/Nest)、数据库驱动、校验、加密、日志、上传下载……安装一行命令,使用几行代码。这个生态让 Node 开发者能快速组装出完整应用,也意味着你在实践里遇到的大部分问题,都有成熟方案可参考。
动手建议:先不急着写业务,做一次"最小应用体验":装好 Node,新建目录,npm init 初始化,安装 express,把上面的最小骨架跑起来,用浏览器访问接口确认返回 JSON。然后改一下路径和返回内容,观察改动即生效。再装一个日志中间件(比如 morgan),重启看请求日志。这几步下来,你对"Express 应用长什么样、中间件怎么挂进来"就有了第一手感觉。