{“fatal”:true}错误

问题描述 投票:0回答:1

当我尝试通过前端登录时,收到错误代码 400。当我看到 Heroku 日志时,我认为它将查询发送到数据库,但没有返回结果而是收到错误。

只有当服务器运行相当长一段时间时才会出现这种情况,并且如果我重新启动heroku服务器即可解决。

我的登录端点的代码是:

const Login = (req, res) => {
  if (!req.session.user) {
    try {
      const user = req.body;
      let sql = `SELECT * FROM users WHERE type_id=?;`;
      db.query(sql, user.type_id, async (err, result) => {
        if (err) res.status(400).send(err);
        if (result[0]) {
          if (await argon2.verify(result[0].password, user.password)) {
            req.session.user = {
              type: result[0].type,
              id: result[0].UserId,
              name: result[0].full_name,
              typeId: result[0].type_id,
            };
            res.status(200).send("logged in");
          } else res.send("wrong password");
        } else res.send("invalid id / user doesnot exist sign up first");
      });
    } catch {
      res.status(500).send(null);
    }
  } else res.send("already logged in");
};

我的根端点也会发生这种情况:

app.get("/", (req, res) => {
  try {
    const sql = "SELECT * FROM users;";
    db.query(sql, (err, result) => {
      if (err) res.send(err);
      res.send(result);
    });
    console.log(req.session);
  } catch {
    res.status(500).send(null);
  }
});

当我从浏览器转到根目录时,它会显示

{"fatal":true}

再次从heroku日志中我可以得出的是,每当查询发送到数据库时,它都会发回错误。

mysql node.js express heroku
1个回答
0
投票

与数据库有关。我点击重新启动(在托管中)并且它起作用了。我看到错误代码,但我无法读取。只需重新启动服务器并重试。这是关于数据库的。

© www.soinside.com 2019 - 2024. All rights reserved.