【发布时间】:2016-12-25 18:38:58
【问题描述】:
我在尝试渲染页面时收到以下错误
Can't set headers after they are sent.
下面是我想要做的事情
res.render('information', {
name: rows[i].name,
boxId: rows[i].box
});
console.log(rows[i].name);
它在控制台中打印出正确的信息,所以我知道这是正确的,但是在 information 页面上呈现该信息是一个问题
{{#each items}}
<form method="post" action="">
<input type="hidden" value="{{BoxId}}">
<button type="submit">{{name}}</button>
</form>
{{/each}}
基本上在该页面上,我正在尝试运行一个 for 循环,其中必须为数据库中找到的每个项目生成一个新的按钮表单。如果有 5 个项目的名称和框值,那么这应该产生 5 次,并设置它们各自的值和名称。
但是,这是次要问题,因为即使执行 <h3> {{name}} </h3> 也不起作用,并且我遇到了设置标题问题。
任何帮助将不胜感激。 正在使用的模板语言: http://handlebarsjs.com/
【问题讨论】:
-
您是否在回调中获取行然后渲染模板?
-
我怀疑错误是由只是调用
res.render()引起的。您的路由处理程序或中间件堆栈中可能还有一些其他代码已经在发送响应。你能显示更多的上下文吗?就像rows的检索方式一样。
标签: javascript node.js templates handlebars.js template-engine