【发布时间】:2018-11-02 04:57:28
【问题描述】:
我正在尝试通过这样做来使用插件覆盖 findOneAndUpdate 方法:
// Messages is a Mongoose Model
await Messages.newFindOneAndUpdate(query, payload, options);
在消息模式定义中我有:
MessagesSchema.plugin(require('../util/schema-api-aware-plugin'));
而那个插件只是声明了静态方法newFindOneAndUpdate:
module.exports = (schema) => {
schema.statics.newFindOneAndUpdate = async (query, data, options) => {
const me = this;
try {
return await me.findOneAndUpdate(query, data, options);
}
catch (err) {
errorManager(err, res);
return null;
}
}
};
当我运行它时,我收到一个类型错误me.findOneAndUpdate is not a function。该模型有效,插件按应有的方式附加,静态方法存在,但由于某种原因,应该是 this 的 me 没有方法 findOneAndUpdate,我错过了什么?
【问题讨论】: