【发布时间】:2015-03-21 17:33:30
【问题描述】:
我很困惑,希望你能帮助我。我正在使用 express.js 在 node.js 中构建一个应用程序,并为我的 ORM 续集。我用以下代码创建了一个模型:
"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]
我希望能够从数据库中提取名称,但我很困惑为什么会给出这样的结果。如果您需要我提供任何信息,请告诉我。我对这一切都很陌生,我处于停滞状态。提前感谢您的所有帮助。
【问题讨论】:
-
我的第一个猜测是你需要使用
users[i].username -
^ 这是正确的,你应该回答它。此外,这会起作用:users[i].dataValues.username 感谢您的帮助。
-
不推荐使用
dataValuesattr。将对象发送到模板系统的最佳方法是直接使用属性,或使用.toJSON()方法。 Check N.B.
标签: javascript node.js express sequelize.js