1
mongoDBデータベースに保存/更新しようとするユーザーのリストがあります。 しかし、私のリストの最後の要素だけが考慮され、他のユーザーはthen
機能に入りません。Express/MongoDB - データベース操作中に予期しない動作が発生する
私はNodejsの初心者ですが、これは私が理解していない同期性の挙動によるものと思われます。
var User = require('../to/path/user-service');
....
userList.forEach(function(user) {
try {
User.updateUser(user);
} catch(err) {
return console.error(err);
}
});
ユーザーサービス
...
var User = mongoose.model('User', userSchema);
console.log(user.name);
export.updateUser = function (user) {
Issue.findOne({name: user.name})
.then((user) => {
if(user) console.log(user.name + ' has been updated');
else console.log(user.name + ' has been created');
}).catch((err) => console.error(err));
};
出力リレー
John
Paul
Alex
Alex has been created
Alex has been created
Alex has been created
私はあなたの修正を追加しましたが、私はまだ同じ問題を持っています。 – Jils
私の実際のコードは少し違っています。閉鎖のメカニズムを考慮に入れることによって、私はついに私が期待していたものを持っていました。ありがとう – Jils