Sequelize findOne()和SQL Server的问题

时间:2016-08-23 15:28:56

标签: sql-server express sequelize.js

我是Sequelize的新手并且正在尝试运行基本查询以在我的数据库中查找模型的第一个实例。我的模型user.js

var Sequelize = require('sequelize');

var sequelize = new Sequelize('Northwind', 'username', 'password', {
    host: 'localhost',
    port: 1433,
    dialect: 'mssql'
});

var User = sequelize.define('Employees', {
    Name: Sequelize.STRING,
    createdAt: false,
    updatedAt: false
});

module.exports = User;

api.js应用程序中调用代码的文件Express.js

router.route('/posts')
    .get(function (req, res) {
        var user;

        User.find({
            where: {
                Name: 'matt'
            }            
        }).then(function (user) {
        console.log('found');
    }, function(err){
        console.log(err);
    });
    res.send({
        message: 'Test string'
    });
});

我使用了价值"马特"因为我知道它在表Employees中。但是,在执行时,我收到的错误似乎表明Sequelize正在尝试SELECT来自Employees表中不存在的列[id][createdAt] [updatedAt]findOne()。我相信它与执行(default)的{​​{1}}命令有关,但我不确定如何配置。

任何指针都会非常感激!

1 个答案:

答案 0 :(得分:0)

需要User.find({ attributes: ['Name'], where: { Name: 'matt' } })

例如,就我而言:

Name

只会考虑查询中的列timestamps: false。活泉。此外,除非模型定义中存在User.js,否则模型将包含这些值,并且在查询表是否未相应地同步时可能会抛出错误。例如,在我的var User = sequelize.define('Users', { Username: Sequelize.STRING, Password: Sequelize.STRING }, { timestamps: false }); 模型中:

class ModelBase extends \Phalcon\Mvc\Collection
{
    public static function deleteBulk(array $conditions)
    {
        $class = get_called_class();
        $model = new $class;
        $collection = $model->getSource();

        # I have a registered service mongo in DI, so i just get it from there
        $mongo = \Phalcon\Di::getDefault()->getMongo();

        return $mongo->$collection->remove($conditions);
    }
}

很抱歉在询问之前没有找到这个: - /希望这些信息对我这样的其他Sequelize n00bs有帮助。