Sequelize "SELECT * from tablename" 查询

Sequelize "SELECT * from tablename" query

为什么下面的查询执行 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 * 查询,但它在我的示例中做了一些不同的事情。这里缺少什么?

这是我的用户模型。

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
    });

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

var email = "admin@admin.com";
user.findAll({where: {email: email}}).then(function (user) {
    res.send(user);

}).error(function (err) {
    console.log("Error:" + err);
});

这是 sequelize 的预期行为 select 仅对您定义的列进行处理。如果您想 select 使用 sequelize 的所有列,您必须在模型中定义它们。