Javascript Node.JS函数外部变量

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

我正在node.js中使用mongodb和mongoose 在函数内部,它验证用户名和密码。 user.password在第一个if语句中起作用,但之后在下面的if-else中起作用,在用户实际起作用的地方返回

              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=''
都将为false
null
只对其本身或未定义的对象进行了
=
,与字符串比较的对象将首先转换为字符串,结果--
“[对象对象]”==“false
。node.js代码中的
提示符()
是什么?对不起,我不明白,我该如何更正?您可能需要考虑一下