Sequelize“SELECT * from tablename”查询

为什么下面的查询执行SELECT id, email, name FROM users AS users WHERE users.email = 'admin@admin.com'; 而不是SELECT * from users WHERE email = admin@admin.com

http://docs.sequelizejs.com/en/latest/docs/querying/#where

文档指出,当我findAll()时它会运行一个SELECT *查询,但是在我的例子中它做了一些不同的事情。 这里缺less什么?

这是我的用户模型。

 var user = sequelize.define('users', { id : { type : Sequelize.INTEGER, primaryKey : true, autoIncrement : true }, email : { type : Sequelize.STRING }, name : { type : Sequelize.STRING } }, { tableName: 'users', freezeTableName: true }); 

这是我的查询。 它似乎只select定义的列,但我不想要这个。

 var email = "admin@admin.com"; user.findAll({where: {email: email}}).then(function (user) { res.send(user); }).error(function (err) { console.log("Error:" + err); }); 

这是预期的行为,只select你定义的列。 如果你想使用sequelizeselect所有的列,你必须在你的模型中定义它们。