当我尝试通过前端登录时收到错误代码 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 日志中,我可以得出的结论是,每当查询发送到数据库时,它都会发回错误。