1.
Without middleware: new request -> run route handler
With middleware: new request -> do something -> run route handler
如下例子,中间件为一个箭头函数,在每次 request 的时候都会打印 method 和 path
app.use((req, res, next) => {
console.log(req.method, req.path);
next();
});
2.
单独设置 middleware 文件夹和 auth.js 中间件
const jwt = require("jsonwebtoken");
const User = require("../models/user");
const auth = async (req, res, next) => {
try {
const token = req.header("Authorization").replace("Bearer ", "");
const decoded = jwt.verify(token, "thisismynewmall");
const user = await User.findOne({
_id: decoded._id,
"tokens.token": token,
});
if (!user) {
throw new Error();
}
req.user = user;
next();
} catc