使用Node.js渲染pug中的数据-渲染页面上没有数据

时间:2018-11-02 00:45:45

标签: node.js json pug

我正在尝试使用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}

1 个答案:

答案 0 :(得分:2)

您的根本问题是responseBody是一个数组,而您试图将其作为对象进行访问。

更改render函数,将数组中的第一个元素提供给模板,它将按预期工作:

res.render('page-template', {  
  pageData: responseBody[0],
  pageTitle: 'this is the about page!' }
);