提问者:小点点

events.js:183抛ER; //未处理的“error”事件^nodeJS JWT


我是nodeJS和JWT的新手。 我想在注册时创建令牌,并在登录时确认它。 但是它一直抛出语法错误,我不知道为什么。 另外,如果我除了语法之外还做错了什么,请告诉我。

  //Add new user A.K.A Registration

  app.post('/addUser', (req, res) => {
    const addUser = new User({username: req.body.username, password: req.body.password})
    addUser.save().then(result => res.status(200).json(result)).catch((err) => console.log(err))
    jwt.sign(addUser,'secretKey',{expiresIn:'30h'},(err,token)=>{
        res.json({token})
    })
})

//Log in A.K.A Sign Up
app.post('/logIn',verifyToken ,(req, res) => {
    User.findOne({username: req.body.username, password: req.body.password}).then(result => {
        if (result.username === req.body.username && result.password === req.body.password) {
            res.status(200).send({
                message: 'Successful login'})
            jwt.verify(req.token, 'secretkey', (err, authData) => {
                if(err) {
                    res.sendStatus(403);
                } else {
                    res.json({
                        message: 'Post created...',
                        authData
                    });
                }
            })
        } else {
            res.status(404).send({
                message: 'Invalid Login'
            })
        }
    })
})

共1个答案

匿名用户

您应该将一个对象传递给json方法


// addUser.save().then(result => res.status(200).json(result))

.then(result => {

res.json({result})

})