【发布时间】:2015-08-30 02:56:20
【问题描述】:
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)或问题可能是什么原因的任何建议?
【问题讨论】:
-
旁注:Express'
req.param()已被弃用,可能会在未来的版本中删除。您应该直接引用req.params、req.query和req.body。 -
您是否检查了
.findOne()提供的err以了解任何可能的详细信息(例如console.error('Error', err);)? -
@JonathanLonowski,问题出在模型声明中。您的提示为我指明了正确的方向。
err给Details: Error: ER_BAD_FIELD_ERROR: Unknown column 'users.passports' in 'field list'。我将发布一个带有解释的答案,以寻求其他人的帮助。