【问题标题】:VueJS Front-end never receives response from NodeJS backendVueJS 前端永远不会收到来自 NodeJS 后端的响应
【发布时间】:2021-04-01 13:01:11
【问题描述】:

我正在尝试在我的 Web 应用程序中设置登录功能,其中后端使用 MongoDB 数据库并使用 NodeJS (express) 完成,而前端使用 VueJS。但是,每当我尝试将响应从后端发送回前端时,前端似乎永远不会得到它。邮递员也从未得到回应。代码如下:

后端:

app.post('/login', async (req,res) => {
  let qusername;
  let qpassword;
  console.log(req.body);
  await User.find({username: req.body.username}, (err,user) => {
    if (user == null){
      return res.status(400).send('User not found');
    }
    qusername = user[0].username;
    qpassword = user[0].password;
  });
  try{
    const user = { username: qusername, password: qpassword};
    await bcrypt.compare(req.body.password, user.password, (err,res) => {
      if(err){
        res.status(500).send(err.message);
      }
      if(res){
        const accessToken = jwt.sign(user, JWT_SECRET, { expiresIn: 300}, (err, accessToken) => {
          console.log(accessToken);
          if(err) {
            res.status(500).send(err.message);
          }
        
          console.log("before");
          res.send(accessToken);
          console.log("after");
        });
      }
      else {
        res.send('Wrong password');
      }
    });
  }
  catch(e) {
    console.log(e);
    res.status(500).json({ message: e.message });
  }
});

前端:

    async getToken({ commit }, { user }) {
    try {
      const response = await axios.post(`${HOST}:${PORT}/login`, user);
      const authToken = response.data;
      commit("setToken", { authToken });
    } catch (e) {
      console.error(e);
    }
  }

后端正在记录正确的请求正文、JWT 和“之前”,而不是“之后”。所以问题确实出现在 res.send() 中。

【问题讨论】:

  • 您正在使用两个名称为“res”的变量。因此,当您调用函数await bcrypt.compare(req.body.password, user.password, (err,res) 时,您应该覆盖变量 res。我认为如果您将此 var 的名称从 res 更改为另一个名称,您的代码应该可以再次工作。

标签: node.js vue.js web request backend


【解决方案1】:

正如 Danizavtz 所指出的,问题在于我有两个名为 res 的变量。将 bcrypt.compare() 中的变量名称从 res 更改为 result,现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2021-09-28
    • 2022-01-22
    • 2020-10-14
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    相关资源
    最近更新 更多