【问题标题】:SequelizeInstance object not rendering in Express Handlebars view (NodeJS, Express)SequelizeInstance 对象未在 Express Handlebars 视图中呈现(NodeJS,Express)
【发布时间】:2017-11-16 12:36:55
【问题描述】:

使用 NodeJS、Express 和 Sequilize,

当使用 res.render() 调用时,我在视图中呈现 [object SequelizeInstance:Todo] 与实际数据实例值相反,但是当由 .send 调用时(请参阅下面的注释行),发送数据实例值到视图。

exports.test_todo_view = function(req, res) {
return Todo
    .findAll({
        //attributes: ['id'] //select fields
        })
    //.then((todos) => res.status(200).send(todos))
    .then((todos) => res.render('test/test_view', {layout: 'ca_layout.handlebars', test_data: todos}))
.catch((error) => res.status(400).send(error));
}

数据库中每个条目的输出是[object SequelizeInstance:Todo]。

谁能给点建议?它有效,即当我使用 .send(todos) 时,我可以看到数据 - [{"id":1,"title":"fasdfsd","createdAt":"2017-11-15",...]如图所示。

我正在使用以下调用视图。

app.get('/test/view', authCarePlan.test_todo_view);

我的 .handlebars 文件如下所示

<div>test_data:{{test_data}}</div>

我希望查询输出以 test_data 的形式出现

【问题讨论】:

    标签: node.js express sequelize.js findall


    【解决方案1】:

    .handlebars 视图中需要以下配置

    {{#test_data}}
    {{title}}
    {{/test_data}}
    

    其中 test_data 是变量占位符的名称,title 是其中一个字段的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多