对象SequelizeInstance正在传递

时间:2015-01-22 19:23:31

标签: javascript node.js express sequelize.js

我很困惑,希望你能帮助我。我正在使用express.js在node.js中构建一个应用程序,并为我的ORM创建sequelize。我用以下代码创建了一个模型:

"use strict";

module.exports = function(sequelize, DataTypes) {
  var User = sequelize.define("User", {
    username: DataTypes.STRING
  });

  return User;
};

我的路线如下:

router.get('/', function (req, res) {
  models.User.findAll({ }).then(function(users) {
    res.render('index', {
      title: 'Project Insight',
      users: users
    });
  });
})

我正在使用EJS作为我的模板:

<ul>
    <% for(var i=0; i<users.length; i++) {%>
      <li><%= users[i] %></li>
    <% } %>
</ul>

我在观看中得到的输出是:

[object SequelizeInstance]
[object SequelizeInstance]
[object SequelizeInstance]
[object SequelizeInstance]

我希望能够从数据库中提取名称,而且我很困惑为什么会给出这个结果。如果您需要我的任何信息,请告诉我。我是所有这一切的新手,我处于停滞状态。提前谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

尝试更改EJS模板:

<ul>
    <% for(var i=0; i<users.length; i++) {%>
      <li><%= users[i].username %></li>
    <% } %>
</ul>

答案 1 :(得分:0)

可能对其他人有帮助:

model.findAll({where}).
  .then(res => {
    return res.map(row => {
      return row.dataValues
    });
  })

这将返回如下所示的对象列表:

[
  {
    column1: value1,
    column2: value2,
    ...
    columnN: valueN
  }
]