我正在尝试使用res.render()将数据传递到Pug模板。当我在代码中达到这一点时:
const _renderPage = function(req, res, responseBody) {
console.log(responseBody);
res.render('page-template', {
pageData: responseBody,
pageTitle: 'this is the about page!' }
);
};
console.log(responseBody)显示:
[ { _id: '5bda4cfc11922d1dc5961922',
name: 'about',
body: 'about ksdjflskjflksdfks' } ]
但是,我的如下所示的Pug模板将不会打印pageData.name或pageData.body的实际值,即使它确实打印了pageTitle变量:
h1= pageTitle
p Welcome to #{pageData.name}
.row
.col-12
p #{pageData.body}
答案 0 :(得分:2)
您的根本问题是responseBody
是一个数组,而您试图将其作为对象进行访问。
更改render函数,将数组中的第一个元素提供给模板,它将按预期工作:
res.render('page-template', {
pageData: responseBody[0],
pageTitle: 'this is the about page!' }
);