我正在使用带有 Mongoose ORM 的 MongoDB 在 Node.js / Express 中构建一个基本博客。
我有一个预“保存”钩子,我想用它来为我自动生成一个博客/想法。这工作得很好,除了我想在继续之前查询是否有任何其他现有帖子具有相同 slug 的部分。
但是,似乎this
无法访问 .find 或 .findOne() ,因此我不断收到错误消息。
解决这个问题的最佳方法是什么?
IdeaSchema.pre('save', function(next) {
var idea = this;
function generate_slug(text) {
return text.toLowerCase().replace(/[^\w ]+/g,'').replace(/ +/g,'-').trim();
};
idea.slug = generate_slug(idea.title);
// this has no method 'find'
this.findOne({slug: idea.slug}, function(err, doc) {
console.log(err);
console.log(doc);
});
//console.log(idea);
next();
});