我一直在玩把手模板。当前的做法是一个简单的待办事项清单。初次加载就可以了,但是如果刷新页面,则实际上不会刷新。相反,它将复制我的GET结果并将其附加到列表中。
所以,列表第一次是这样的:
然后刷新,我得到:
index.js GET方法
app.get('/', (req, res) => {
let query = "select * from todos";
db.query(query, function(err, rows) {
if (err) throw err;
rows.forEach(function(todo) {
todos.push(todo.todo);
console.log(todo.todo)
})
res.render('index', {
todos
});
})
});
index.hbs
<h2>Here's some Todos</h2>
<ul id="list">
{{#each todos}}
<li>{{this}}</li>
{{/each}}
</ul>
答案 0 :(得分:1)
似乎todos是一个全局变量,或者在for循环范围之外有效。对于每个查询,它在todos中添加现有的数据库项目。在调用循环之前,请确保待办事项是一个空列表:
if (err) throw err;
todos = [];
rows.forEach(function(todo) {
todos.push(todo.todo);
console.log(todo.todo)
})