mysql - findOne 没有得到任何记录

标签 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?");
            }
        ...

给我 user 对象的 undefined,我总是以错误语句结束。 username 变量具有正确的值。我创建记录的方法有效(因此我与数据库的连接正常),当我查看数据库时,记录就在那里,包含所有正确的数据。

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

关于我在哪里可以查看(调试或 smth)或问题的可能原因有什么建议吗?

最佳答案

Jonathan 对检查 err 的评论为我指明了正确的方向。我的 User 模型如下:

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

并且我还在 Passport 模型中声明了关系 belongsToerr 给出了 Details: Error: ER_BAD_FIELD_ERROR: Unknown column 'users.passports' in 'field list',当然还有我的 user数据库中的表我没有 passports 列。

结论:我在 User 模型中有不必要的实体关系声明。这在 MongoDB 中运行良好,但显然在 MySQL 中就完全不同了。

关于mysql - findOne 没有得到任何记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30831171/

相关文章:

mysql - 在 MySQL 中选择两个查询与单个映射表的交集

mysql - SQL语法错误导致数据库错误

node.js - Angular : Receive responses in order with the calls

javascript - 如何迭代创建记录集合并一次呈现所有记录?

php - 创建当前日期减去过去时间戳的变量

javascript - 将 XML 文件作为 JSON 加载到 NodeJS 中

javascript - 环回中 REST 连接器查询中的重复键

javascript - Sails.js:路由在 Chrome 中遇到 'Too Many Requests' 错误

sails.js - 如何使用已定义的连接配置初始化 Sequalize 对象

mysql - 如何在 MySQL Workbench 中获取表创建脚本?