捕获异常:TypeError:无法读取属性'完成'未定义的

时间:2017-11-20 15:36:08

标签: javascript node.js mongodb

在我的node / express / mongo设置中创建用户时,我一直在标题中收到错误。

以下是抛出的代码:

app.post("/api/user", function(req, res) {

        if (req.session.user)
        {
            res.send(409, "You are connected, you can't create an account");
            return false;
        }

        var email = req.param('email');
        var password = req.param('password');
        if (!email || !password || email.length < 3 || password.length < 3 || !email.match(config.emailRegex))
        {
            res.send(400, "Please provide a correct email and a correct password");
            return false;
        }
        database.user.create(email, password, function (user, err) {
            if (err)
            {
                console.log("[error] user %s already exist", email);
                res.send(409, "This user already exist");
                return false;
            }
            console.log("[info ] Creating new user %s", email);
            req.session.user = user.emitted.complete[0];
            res.send("User created");
        });
    });

我认为这个问题出现在req.session.user = user.emitted.complete[0];,但由于我对此有所了解,我对尝试的事情没有任何好运。

想法?

2 个答案:

答案 0 :(得分:0)

添加自动防故障代码:

if(user && user.emitted && user.emitted.complete){
    req.session.user = user.emitted.complete[0];
}

答案 1 :(得分:0)

似乎是回调参数中的一个问题。 回调的第一个参数是为错误对象保留的

database.user.create(email, password, function (err, user) {
  //rest of your code will go here..!!!
})