【发布时间】:2021-07-22 12:04:34
【问题描述】:
我希望在保存文档时将merchantID 设置为req.user 中的登录用户。
product.model.js:
const ProductSchema = new Schema({
merchantId: {
type: ObjectId,
ref: "Merchant",
required: true
},
....
})
ProductSchema.pre("save", () => {
console.log(req.user) // req object is not defined
})
我该怎么做呢?
【问题讨论】:
-
代码中的任何地方都没有明确的中间件。
-
@ChrisG 我认为 OP 想要访问 mongoose pre hook 中的 req 对象。不要认为 express 中间件在这里是相关的。
-
@ChrisG 不,不是表达中间件。我的意思是猫鼬中间件(预钩子)。我编辑了标题以进行澄清
-
你误会了。我的猜测是您需要在 express 中间件函数中运行
ProductSchema.pre()。你怎么能在猫鼬钩子中使用req?另外,您确定这里需要 pre hook 吗?您不能在将产品直接保存到快递路线之前简单地设置产品的商家 ID 吗? -
@ChrisG 哦,现在说得通了,谢谢。我不知道我可以在猫鼬模型之外使用 pre 钩子。
标签: javascript node.js mongodb express mongoose