node.js – Cannot set headers after they are sent to the client node-js error

I am getting the “Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client” error in my code.

router.get("/", verify, async (req, res) => {
  const user = await pool.query("SELECT * FROM users WHERE id = $1", [req.user]);
  if (user.rows.length) {
    return res.status(200).json({ user: user.rows[0] });
  } else {
    return res.status(403).json({ msg: "Not Authorized" });
  }
});

Below is the verify middleware,

try {
  const { auth } = req.cookies;
  if (!auth) {
    return res.status(403).json({ msg: "Not Authorized" });
  } else {
    const data = jwt.verify(auth, process.env.JWT_SECRET);
    req.user = data.id;
    next();
  }
} catch (error) {
  return res.status(403).json({ msg: "Not Authorized" });
}
next();

I will be glad if someone helps.

Read more here: Source link