初心者の質問をして申し訳ありません(以下のコードは、エクスプレスフレームワークとマングースDBに関連付けられています)
ユーザー名を含む配列「ユーザー」をループしようとしています。次に、マングースデータベースでそれらを照合して、各ユーザーの学校と学年を取得しようとしています。次に、それらを組み合わせて、 UsersInfoFinal という最終的な配列にします。
var Users = ['peter', 'john'];
var UsersInfoFinal = [];
for (i = 0; i < Users.length; i++){
userModel.findOne ({username: Users[i]}, 'username school grade', function (error, UserInfo) {
UsersInfoFinal .push([UserInfo.username, UserInfo.school, UserInfo.grade]);
});
}
console.log(UsersInfoFinal );
コンソールには が出力されるはずですが[[peter, MIT, 95], [john, Royal Academy, 89]]
、コンソールには引き続き が出力[]
され、変数 UsersInfoFinal は変更されません。
何故ですか?ループ後に変数を変更する方法はありますか? 助けてください私はnode.jsとMongoDBに本当に慣れていないので、何時間も立ち往生しています:S
ありがとう!