Javascript 在MongoDB中,为什么搜索一封不存在的电子邮件会使我的整个应用程序崩溃

Javascript 在MongoDB中,为什么搜索一封不存在的电子邮件会使我的整个应用程序崩溃,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,在我的Node.js express应用程序中,我正在设置一个用户登录,这是我第一次经历这种自我教学 我这里有这个函数 var db = require('mongojs').connect('localhost/busapp', ['users']), crypto = require('crypto'); exports.new = function(req, res) { function User(email, password) { this

在我的Node.js express应用程序中,我正在设置一个用户登录,这是我第一次经历这种自我教学

我这里有这个函数

var db     = require('mongojs').connect('localhost/busapp', ['users']),
    crypto = require('crypto');

exports.new = function(req, res) {

    function User(email, password) {
        this.email = email;
        this.password = password;
    }

    var user = new User(req.body.user.email, req.body.user.password);
    console.log(user.email + user.password);

    db.users.find({'email':user.email}, function(err, userFound) {

        if (err) {
            console.log('We have an error :(');
        } else if (userFound === 'undefined') {
            console.log('We couldn\'t find the user ' + user.email);
            return;
        } else {
            console.log('We have fixed the error, hooorraayyy!! ' + userFound[0].email)
        } 
    });

}
但是控制台日志显示为

We found the user! undefined
我不知道我做错了什么,如果有人能告诉我情况会很好,谢谢

好的,我通过将代码更改为上述代码来修复它,但现在我遇到了一个问题,如果我尝试搜索一封不存在的电子邮件,它会导致我的整个应用程序崩溃,并出现以下错误:

C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\connection\server.js:529
        throw err;
              ^
TypeError: Cannot read property 'email' of undefined
    at C:\Users\Gacnt\Desktop\Busapp\routes\session.js:22:72
    at C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\cursor.js:159:16
    at commandHandler (C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\cursor.js:628
:16)
    at null.<anonymous> (C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\db.js:1709:
18)
    at g (events.js:175:14)
    at EventEmitter.emit (events.js:106:17)
    at Server.Base._callHandler (C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\con
nection\base.js:130:25)
    at C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\connection\server.js:522:20
    at MongoReply.parseBody (C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\respons
es\mongo_reply.js:132:5)
    at null.<anonymous> (C:\Users\Gacnt\Desktop\Busapp\node_modules\mongojs\node_modules\mongodb\lib\mongodb\connection\
server.js:481:22)
PS C:\Users\Gacnt\Desktop\Busapp>
C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\connection\server.js:529
犯错误;
^
TypeError:无法读取未定义的属性“email”
在C:\Users\Gacnt\Desktop\Busapp\routes\session.js:22:72
在C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\cursor.js:159:16
在commandHandler(C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\cursor.js:628
:16)
在空。(C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\db.js:1709:
18)
在g(events.js:175:14)
在EventEmitter.emit(events.js:106:17)
在Server.Base.\u callHandler(C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\con
nection\base.js:130:25)
在C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\connection\server.js:522:20
在MongoReply.parseBody(C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\response)
es\mongo_reply.js:132:5)
在空。(C:\Users\Gacnt\Desktop\Busapp\node\u modules\mongojs\node\u modules\mongodb\lib\mongodb\connection\
server.js:481:22)
PS C:\Users\Gacnt\Desktop\Busapp>

我从未使用过mongo的javascript驱动程序,但看起来您对查询本身的理解是错误的。至于我,你的用户对象是未定义的,它没有电子邮件属性。Mongo js驱动程序甚至在将查询实际传递给Mongo引擎之前就尝试解析此属性的值,这对于不存在的用户来说是失败的,因此您有一个异常。在查询mongo之前,尝试添加检查用户对象是否正确的命令

顺便说一句,从你的代码片段中不清楚你在哪里打印消息“我们找到了一个用户!“未定义”请再次检查此项 希望这有帮助