我开始研究node.js,现在我正在尝试做一个“Todo-App”。
我正在尝试找到将数据从我的数据库(使用mongodb)传输到我的hbs文件中的最佳方法,因此我可以显示它。
来自server.js - >服务器到hbs - >客户端(如果我错了请通知我,假设server.js当然是服务器而hbs文件是客户端)
所以,我成功通过传递一个数组。 但是当我试图在html设计中显示时,它看起来很糟糕。
代码:
app.get('/allTasks',(req,res)=>{ //get (go to) the allTasks (hbs file)
Todo.find().then((todos) => {
console.log(todos);
var arrayOfTodos = [];
todos.forEach(function(element){
console.log("\n\n\n\n\n elemnt details: ",element.text + "\n",element.completed+"\n");
arrayOfTodos.push(element.text,element.completed);
});
res.render("allTasks.hbs", {
pageTitle: "Your tasks: ",
todos: arrayOfTodos
});
});
});
结果是:
正如你所看到的,它看起来很糟糕...因为它只是显示一个数组, 我想单独显示每个任务。 有小费吗?
非常感谢, Sagiv
答案 0 :(得分:0)
而不是使用push,只需执行:
Todo.find().toArray(function(err, result){
arrayOfTodos = result;
})
一旦你有阵列,设计与mongodb无关。您将需要学习如何使用渲染技术。您需要触摸您的html模板,因此您应该首先发布该模板。
答案 1 :(得分:0)
问题解决了。 我只需要学习如何处理hbs方面的数据。 所以代码是:(以hbs为单位)
{{#each todos}}
{{missionNumber}} <br>
{{text}}<br>
completed = {{completed}}<br><br>
{{/each}}
如你所见,每个都是一个循环,传递todos参数(我的数组) 我只需要以我想要的方式显示数据。
感谢您的帮助。