Node expressとmongodbを使用しています。私はショーページのすべての関連プロパティをループすることができるようにしようとしています。私のコードは、そのコードTypeError:未定義のプロパティ 'ref'を読み取れません。 Express
Desktop.find({}, function(err, allDesktop) {
if(err){
console.log(err);
} else {
console.log(allDesktop); // #1
res.locals.desktops = allDesktop; // Set the data in locals
}
});
console.log("res.locals.desktops: ", res.locals.desktops); //#2
あるルートの一部であり、#1 console.log
は正しいすべての結果をログアウトします。しかしconsole.log
#2はundefined
を返します。どうしてこれなの?私は同じ経路で他の場所でも同じように設定したことを知っていますが、代わりにres.locals.laptops
ここでは何が分かりますか?
'Desktop.find'は同期関数です。呼び出しの直後に結果を使用することはできません。 'console.log'の最初の呼び出しが正しいデータを出力しますが、2番目の' undefined'が出力されるため、結果はコールバックで利用可能です。 – alexmac
'Desktop.find()'が実行されていますが、DBが結果を返すときにコールバックが実行される前に 'console.log()'に移動します。返される前に結果を出力しようとしています。コールバックの中で 'console.log()'を動かしてください。 – doublesharp