[英]Query data in EJS with NodeJS and Mongoose
我通過執行以下操作捕獲了數據並顯示它們:
const items = [];
Task.find({},(err,tasks)=>{
if(err){
console.log(err);
}else{
tasks.forEach((task)=>{
items.push(task.name);
})
}
})
app.get("/", (req, res) => {
today = date.getDate();
res.render('list', { kindOfDay: today, items: items });
})
但是當我嘗試這樣做時,它無法顯示數據而沒有任何錯誤:
app.get("/", (req, res) => {
const items = [];
Task.find({}, (err, tasks) => {
if (err) {
console.log(err);
} else {
tasks.forEach((task) => {
items.push(task.name);
//console.log(task.name) still works
})
}
});
today = date.getDate();
res.render('list', { kindOfDay: today, items: items });
})
有人知道為什么上面的代碼在我呈現“列表”頁面時拒絕顯示數據? 謝謝!
res.render
find
方法是異步的, res.render
可能/會在數組填充之前執行。 你的代碼應該如下
app.get("/", (req, res) => {
const items = [];
Task.find({}, (err, tasks) => {
if (err) {
console.log(err);
} else {
tasks.forEach((task) => {
items.push(task.name);
//console.log(task.name) still works
});
}
today = date.getDate();
res.render('list', { kindOfDay: today, items: items });
});
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.