私はこのコードを動作させることができません、私は自分のDBから5ランダンスのアイテムを生成し、それらを配列(dato)に格納しようとしていますが、Array.PushはNodeJSで動作しません
/* GET users listing. */
router.get('/', function (request, response) {
var dato = new Array();
for(var i=0;i<7;i++){
almuerzoSchema.findRandom({}, {}, {limit: 5}, function(err, results) {
if (!err) {
results.forEach(function (record) {
dato.push(record.nombre);
});
}
});
}
console.log(dato);
response.render('almuerzo.jade',{almuerzovar: dato});
});
はconsole.log(ダトが)を示し空である:レーヨンコード、言ったように
[]
私はそれをCONSOLE.LOGの "record.nombre" を印刷する場合は、正しく
'almuerzoSchema.findRandom'は私に' async'ようです! forループが終了する前に – Rayon
を実行すると、datoを印刷しようとしています。 Forループは非同期で実行されます。 – Subburaj
さらにコードを書く前に、非同期プログラミングNode.jsがどのように動作するかを学んでください。このルートにはいくつかの問題があります(例:あなたのforループは同期的で、かなりの問題を引き起こします。 – Qix