原生 HTTP
这节要解决什么
不借助框架,先看懂「一个 HTTP 服务最小长什么样」,后面学 Express / Nest 才知道框架帮你省了什么。
先用大白话
浏览器访问一个网址时:
- 发出 请求(方法 GET/POST、路径、头、身体)
- 服务器给出 响应(状态码、头、身体)
Node 自带 node:http 模块,能监听端口、收到请求后写回响应。
Express / Nest 都是在这层之上帮你:路由更方便、中间件更好插、错误更好管。
类比:原生 HTTP 像手写 DOM;Express 像 jQuery;Nest 像带规范的 Vue/Nuxt 工程结构。
最小例子(读懂即可)
import http from 'node:http'
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'application/json; charset=utf-8')
res.end(JSON.stringify({ ok: true, path: req.url }))
})
server.listen(3001, () => {
console.log('http://localhost:3001')
})你会发现:路径一多,自己 if/else 会疯掉 —— 所以才有路由框架。
和后面项目的关系
下一节的 Express 项目,以及 Nest(默认底下也是 Express),请求进来最终都是「请求对象 → 你的处理函数 → 响应对象」。
名词可能叫 req/res 或 @Req()/@Res(),本质一样。
验收清单
- 能说出请求 / 响应各有哪些常见部分
- 知道 Express、Nest 都建立在 HTTP 之上
- 明白「自己手写路由很痛,所以用框架」
下一节 → 02-Express速通-TS.md