我正在编写一个mongoose中间件,它会在每次使用pre query钩子执行查找对象时被调用。
postSchema.pre('query', function(query, next) {
// I want to access the req.user object here
query.populate('Category');
next();
});
我希望在每次请求 api 服务器时能够访问 req.user 对象的内容。如何将该对象传递给中间件?
这是否可能实现?
https://github.com/Automattic/mongoose/issues/1931
我找到了上述内容,但它没有讲解如何传递req对象。====================
在一些问题的混淆后进行编辑。
我试图实现的是获取req.user角色和模型名称,将其传递给另一个函数以获取用于查找的查询条件。因此,根据用户角色和访问的模型类型,查询条件将发生变化。
pre
钩子(至少在 Mongoose 4.x 中是这样,尽管query
钩子被find
取代了;也许语义也发生了变化)。它还会在从模式创建模型之后添加钩子,这意味着钩子未注册到模型。 - robertklepreq
。 - Swaraj Giri