我正在制作一个API。当我发送正确的数据进行登录时,我得到JSON,但是当我发送不正确的数据时,我得到了这个[对象对象]消息,为什么?

提供正确的信息时。

这是我的代码。

router.route('/login').post(function (req, res, next) {
    console.log('i should be here when path match to login', req.body);

    UserModel.findOne({
        username: req.body.username,
      })
      .exec(function (err, user) {
        if (err) {
          return next(err);
        }
        if (user) {
          var passwordMatch = passwordHash.verify(req.body.password, user.password);
          if (passwordMatch) {
            var token = generateToken(user);
            res.status(200).json({
              user: user,
              token: token
            });
          } else {
            next({
              message: "password didnot match",
              status: 400
            })
          }
        } else {
          next({
            message: 'Invalid Username',
            status: 400
          })
        }
      });
  });

最佳答案

您可以执行此操作而无需使用next。试试这个代码,它将立即起作用!

router.route('/login').post(function (req, res, next) {
        console.log('i should be here when path match to login', req.body);

        UserModel.findOne({
            username: req.body.username,
          })
          .exec(function (err, user) {
            if (err) {
              console.log(err);
              res.status(500).json({message:'Backend error'})
            }
            if (user) {
              var passwordMatch = passwordHash.verify(req.body.password, user.password);
              if (passwordMatch) {
                var token = generateToken(user);
                res.status(200).json({
                  user: user,
                  token: token,
                  message:'Login successful'
                });
              } else {
                res.status(400).json({message:'Wrong password'})
              }
            } else {
              res.status(400).json({message:'User does not exist'})
            }
          });
      });

09-28 12:57