我发现app.locals
可以解决将令牌有效载荷传递到所有路线的问题。
有效负载包含userId
,我需要将其传递到所有路由,然后将其传递到ProductModel
的主体,而主体需要userId
。
您可以在下面的代码中看到,我创建了一个中间件,该中间件将设置locals
,然后在路由中将这个locals.token
传递给ProductModel
。
请参见下面的示例代码。
auth.js (中间件)
let decoded = await jwt.verify(token, config.secret);
res.locals.token = decoded;
productRoute.js (路由)
router.post('/', auth, async (req, res) => {
req.body.userId = res.locals.token._id;
const result = await ProductModel.postProduct(req.body);
}
我的问题是:
locals
是否会被覆盖?