Express.js Cheatsheet - Express Middleware & API Reference

Express.js 日常 API 开发必备命令与中间件都在这里了,从路由定义到错误处理,按类别分类整理,写代码时直接复制。

Languages·45 commands·Last updated 2026-07-21
Back to Languages

应用创建 5

const app = express()
创建应用实例
app.use(express.json())
挂载全局中间件(解析 JSON 请求体)
app.listen(3000, () => {})
监听端口启动服务
const router = express.Router()
创建可挂载路由器
app.set("port", process.env.PORT || 3000)
设置应用配置

路由定义 7

app.get("/users", handler)
GET 路由
app.post("/users", handler)
POST 路由
app.put("/users/:id", handler)
PUT 路由,:id 是参数
app.delete("/users/:id", handler)
DELETE 路由
app.all("/api/*", handler)
匹配所有方法的通配路由
app.use("/api", router)
挂载子路由模块
router.route("/users").get(list).post(create)
链式路由定义

请求对象 Request 6

req.params.id
URL 路由参数
req.query.page
查询字符串参数
req.body.name
请求体(需 express.json())
req.headers["content-type"]
请求头
req.cookies.token
Cookie(需 cookie-parser)
req.get("User-Agent")
获取指定请求头

响应对象 Response 6

res.send("hello")
发送文本响应
res.json({ data })
返回 JSON
res.status(201).json({ ok: true })
设置状态码并返回 JSON
res.redirect("/login")
重定向
res.sendFile(path.join(__dirname, "index.html"))
发送文件
res.set("X-Custom", "value")
设置响应头

常用中间件 8

app.use((req, res, next) => { next() })
自定义中间件
express.urlencoded({ extended: true })
解析 URL 编码表单
app.use("/static", express.static("public"))
静态文件服务
cors()
跨域支持中间件
helmet()
安全 HTTP 头中间件
morgan("dev")
请求日志中间件
cookie-parser()
解析 Cookie
compression()
响应压缩中间件

模板引擎与 JWT 6

app.set("view engine", "ejs")
设置模板引擎
app.set("views", path.join(__dirname, "views"))
设置模板目录
res.render("index", { title: "Home" })
渲染模板并响应
jwt.sign(payload, secret, { expiresIn: "1h" })
签发 JWT token
jwt.verify(token, secret)
验证 JWT token
req.headers.authorization
从请求头获取 Bearer token

错误处理与实用模式 7

const wrap = (fn) => (req, res, next) => fn(req, res, next).catch(next)
异步错误包装器,自动捕获 async 错误
app.use((req, res) => res.status(404).send("Not Found"))
404 兜底处理
app.use((err, req, res, next) => res.status(500).json({ error: err.message }))
全局错误处理中间件(必须 4 个参数)
next(err)
传递错误到错误处理中间件
process.on("uncaughtException", handler)
捕获未处理异常
process.on("unhandledRejection", handler)
捕获未处理 Promise 拒绝
module.exports = router
导出路由模块供 app.use 挂载

💡 Tips

  • 中间件顺序很重要,body-parser 必须在路由之前,错误处理中间件必须放最后。
  • 错误处理中间件必须 4 个参数 (err, req, res, next),否则 Express 不识别。
  • 生产环境用 helmet() 加安全头,cors() 按需配置白名单。
  • express.static 可设置多个目录,按顺序查找文件。
  • Router 可模块化路由,app.use("/api", router) 挂载子路由。