我正在Node上建立一个基本的博客.js/Express使用MongoDB和Mongoose ORM.
我有一个"保存"前的钩子,我想用它自动生成一个博客/ idea 片段.这很好用,除了我想在继续之前查询一下是否有其他帖子使用相同的slug.
然而,this
似乎无法访问.找到或者.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();
});