express 会改写 req.url, 比如下面这段代码
const express = require('express');
const app = express();
app.use('/api', (req, res) => {
console.log(req.url); // 输出: /users
console.log(req.originalUrl); // 输出: /api/users
res.json({})
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
当 http 请求中的 url 是 /api/users 时,nodejs 原生 http module 中的 req.url 是 /api/user, 不过 express 会将 req.url 改写为 /users, 同时 express 增加了一个 req.originalUrl 保留最初的 nodejs 原生 http module 中的 req.url. 所以 req.url 为 /users, req.originalUrl 为 /api/users