我在这个问题上停留了一段时间,我可能只是个愚蠢的人,但我希望它还不错。我受命使用NodeJS + Express + MYSQL创建一个简单的系统。用户可以在其中登录和注销,同时检查现有的用户名/电子邮件
所以给出我目前错误的代码(已经经历了许多迭代和实现)
var userExists;
var emailExists;
var userCheck = 'SELECT * FROM users WHERE uname =' + req.body.email;
connection.query(userCheck, function (error, results) {
if (error) {
userExists = true;
res.json({
status: false,
message: 'there are some error with query'
})}
if (results.length > 0) {
userExists = true;
res.json({
status: false,
message: 'Username already exists'
});
} else {
userExists = false;
}
});
我遇到了一个问题:
'TypeError:无法读取未定义的属性'length''
在过去的10个小时里,使用此代码我的头已经花了很多时间,但我希望这不是一个菜鸟的错误!任何帮助将不胜感激!
答案 0 :(得分:1)
您当前的代码将尝试检查.length
中的results
,无论是否存在错误。如果有错误,则results
可能是undefined
,因此将继续检查results.length
。考虑在return
块底部放置if (error)
:
connection.query(userCheck, function (error, results) {
if (error) {
userExists = true;
res.json({
status: false,
message: 'there are some error with query'
});
return;
}
if (results.length > 0) {
userExists = true;
res.json({
status: false,
message: 'Username already exists'
});
} else {
userExists = false;
}
});