Javascript Node.JS函数外部变量
我正在node.js中使用mongodb和mongoose 在函数内部,它验证用户名和密码。 user.password在第一个if语句中起作用,但之后在下面的if-else中起作用,在用户实际起作用的地方返回Javascript Node.JS函数外部变量,javascript,node.js,mongodb,if-statement,Javascript,Node.js,Mongodb,If Statement,我正在node.js中使用mongodb和mongoose 在函数内部,它验证用户名和密码。 user.password在第一个if语句中起作用,但之后在下面的if-else中起作用,在用户实际起作用的地方返回 if (password1 == user.password) { ^ TypeError: Cannot read property 'password' of null 我的密码是 U
if (password1 == user.password) {
^
TypeError: Cannot read property 'password' of null
我的密码是
User.findOne({ 'Username: ': username1}, function(err, user) {
if (err){
console.log("There was an error proccesing the request".red + " : ".red + err);
} else if (user == '') {
console.log("This user was not found")
} else {
prompt('Password: ', function(password1){
if (password1 == user.password) {
console.log("User Login Sucsess")
} else {
console.log("Password incorrect")
proccess.exit();
}
console.log("made it");
})
}
})
有人知道如何解决这个问题吗
谢谢大家! 错误消息
无法读取null的属性“password”
表示用户
为null
。但是代码正在检查空字符串。改为或另外检查null
。例如,代替…:
} else if (user == '') {
…做一些更像这样的事情:
} else if (! user) {
!如果user
为空字符串或null
或任何值,则user
将为真。错误消息无法读取null的属性“password”
表示user
为null
。但是代码正在检查空字符串。改为或另外检查null
。例如,代替…:
} else if (user == '') {
…做一些更像这样的事情:
} else if (! user) {
!如果user
为空字符串或null
或任何值,则user
将为真。错误消息无法读取null的属性“password”
表示user
为null
。但是代码正在检查空字符串。改为或另外检查null
。例如,代替…:
} else if (user == '') {
…做一些更像这样的事情:
} else if (! user) {
!如果user
为空字符串或null
或任何值,则user
将为真。错误消息无法读取null的属性“password”
表示user
为null
。但是代码正在检查空字符串。改为或另外检查null
。例如,代替…:
} else if (user == '') {
…做一些更像这样的事情:
} else if (! user) {
!如果user
为空字符串或null
或任意值,则user
将为真。抛出错误的行不一定有任何错误:
if (password1 == user.password) {
当问题变得确定时,情况更是如此。问题的根源在于以下几点:
} else if (user == '') {
console.log("This user was not found")
错误消息表明用户
为空
(因为空
不能具有.password
之类的属性),这意味着在这种情况下找不到与查询匹配的文档。但是,条件没有捕捉到这一点,允许函数继续执行,并在没有用户时尝试读取user.password
这是因为null==''
是false
。在JavaScript中,null
值仅对其自身或未定义的=
var user = null;
console.log(user == ''); // false
console.log(null == ''); // false
console.log(null == null); // true
console.log(null == undefined); // true
调整条件以检查null
应特别解决此问题:
} else if (user == null) {
console.log("This user was not found")
抛出错误的行不一定有任何错误:
if (password1 == user.password) {
当问题变得确定时,情况更是如此。问题的根源在于以下几点:
} else if (user == '') {
console.log("This user was not found")
错误消息表明用户
为空
(因为空
不能具有.password
之类的属性),这意味着在这种情况下找不到与查询匹配的文档。但是,条件没有捕捉到这一点,允许函数继续执行,并在没有用户时尝试读取user.password
这是因为null==''
是false
。在JavaScript中,null
值仅对其自身或未定义的=
var user = null;
console.log(user == ''); // false
console.log(null == ''); // false
console.log(null == null); // true
console.log(null == undefined); // true
调整条件以检查null
应特别解决此问题:
} else if (user == null) {
console.log("This user was not found")
抛出错误的行不一定有任何错误:
if (password1 == user.password) {
当问题变得确定时,情况更是如此。问题的根源在于以下几点:
} else if (user == '') {
console.log("This user was not found")
错误消息表明用户
为空
(因为空
不能具有.password
之类的属性),这意味着在这种情况下找不到与查询匹配的文档。但是,条件没有捕捉到这一点,允许函数继续执行,并在没有用户时尝试读取user.password
这是因为null==''
是false
。在JavaScript中,null
值仅对其自身或未定义的=
var user = null;
console.log(user == ''); // false
console.log(null == ''); // false
console.log(null == null); // true
console.log(null == undefined); // true
调整条件以检查null
应特别解决此问题:
} else if (user == null) {
console.log("This user was not found")
抛出错误的行不一定有任何错误:
if (password1 == user.password) {
当问题变得确定时,情况更是如此。问题的根源在于以下几点:
} else if (user == '') {
console.log("This user was not found")
错误消息表明用户
为空
(因为空
不能具有.password
之类的属性),这意味着在这种情况下找不到与查询匹配的文档。但是,条件没有捕捉到这一点,允许函数继续执行,并在没有用户时尝试读取user.password
这是因为null==''
是false
。在JavaScript中,null
值仅对其自身或未定义的=
var user = null;
console.log(user == ''); // false
console.log(null == ''); // false
console.log(null == null); // true
console.log(null == undefined); // true
调整条件以检查null
应特别解决此问题:
} else if (user == null) {
console.log("This user was not found")
没有找到这样的用户
,但是“未找到”的测试没有成功<代码>用户
将为空
或文档对象
。在任何一种情况下,,user=''
都将为falsenull
只对其本身或未定义的对象进行了=
,与字符串比较的对象将首先转换为字符串,结果--“[对象对象]”==“false
。node.js代码中的提示符()
是什么?对不起,我不明白,我该如何更正?您可能需要考虑一下