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
模型中声明了关系 belongsTo
。 err
给出了 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/