MongoDB と Mongoose ORM を使用して、Node.js/Express で基本的なブログを作成しています。
ブログ/アイデアスラッグを自動生成するために使用したい事前「保存」フックがあります。続行する前に、同じスラッグを持つ他の既存の投稿があるかどうかを確認するためにクエリを実行する部分を除いて、これは正常に機能します。
ただし、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();
});