ユーザーがいるアプリケーションでNodeJSとMongooseを使用しています。また、リクエストに応じて、サーバーが特定のユーザーに対して行う多くの操作があります。あなたが見ることができるようにNodeJS/Mongooseでこのコードの重複を減らすには
User.findOne({'email':req.user.email}, function (err, user) {
if (err) {
console.log('err');
res.send('Error');
}
if(!user){
console.log('err');
res.send('Error');
}
// do something with returned user
user.data = ....
...
user.save(function(err) {
if(err) {
console.log('err');
res.send('Error');
}
else {
console.log('success');
res.send('Success');
}
}
、複製コードがたくさんある:意味
、私は多くの機能に登場する、この特定のコードの断片を持っています。変更されるコードは、「返されたユーザーと何かする」部分です。他のほとんどすべて(エラーメッセージなど)は同じままです。
この部分をどのように抽出できますか?これはコールバック機構で動作しているので、これを達成するための方法はありますか?
代わりに、['.update()'](http://mongoosejs.com/docs/api.html#model_Model.update)を使用してください。 '.findOne()'を使うと、 '.save()'を操作してから呼び出すことは帯域幅を噛み砕くことでかなり遅くなります。より広い問題ですが、その1つのコールを適切に適用する方法を検討するだけで、多くの定型文を保存するだけでなく、他にも多くのメリットがもたらされます。 –