findOne没有得到任何记录

时间:2015-06-14 15:29:13

标签: mysql node.js sails.js

login: function (req, res) {
        var username = req.param('username');
        var password = req.param('password');

        User.findOne({username: username}, function (err, user) {
            if (err || !user) {
                return res.status('401').send("User with username \"" + username + "\" not found. Are you registered?");
            }
        ...

undefined对象提供user,我总是在错误陈述中结束。 username变量具有正确的值。我创建记录的方法是有效的(因此我与DB的连接没问题),当我查看数据库时,记录就在那里,并且包含所有正确的数据。

我也试过User.find().where({username: username}).exec(function (err, user) {但没有成功......

有关我在哪里可以查看(调试或smth)或可能导致问题的原因的任何建议?

1 个答案:

答案 0 :(得分:1)

乔纳森对检查err的评论指出了我正确的方向。我的User模型如下:

attributes: {
        // Relations
        passports: {
            model: 'Passport'
        },
//... other attributes

我还在belongsTo模型中声明了关系Passporterr正在提供Details: Error: ER_BAD_FIELD_ERROR: Unknown column 'users.passports' in 'field list',当然在数据库的user表格中,我没有passports列。

结论:我在User模型中有不必要的实体关系声明。这与MongoDB一起工作正常,但显然与MySQL事情完全不同。