即使在 res.send 之后代码仍在执行

code is getting executed even after res.send

所以,我正在开发一个完整的堆栈 mern 应用程序,但是在身份验证页面中,即使在 res.send

之后代码仍在执行
import User from "../models/user.js";
import { registerValidation } from "../validation.js";
const router = Router();
//!Hapijoi

//!
router.get("/register", async (req, res) => {
  const { error } = registerValidation(req.body);
  if (error) res.status(400).send(error.details[0].message);

  const email = await User.findOne({ email: req.body.email });
  if (email) return res.status(400).send("email exists");
  const user = new User(req.body);
  try {
    const saveduser = await user.save();
    res.send(saveduser);
  } catch (error) {
    console.log(error);
  }
});
export default router;

所以,即使在 if (error) res.status(400).send(error.details[0].message);if (email) return res.status(400).send("email exists"); 行之后,数据也存储在数据库中 但是我看到代码不会在 res.send 之后执行 我该怎么办请帮忙

您可能想要 return 以防止进一步的代码执行,这可能会导致不需要的行为,以及表明响应已发送的错误。所以只写这个:

if (error) return res.status(400).send(error.details[0].message);

就像你在这里做的那样:

if (email) return res.status(400).send("email exists");

请注意,Express 回调的 return 值将被忽略,因此您可以在 return 之后写入任何内容,其目的只是停止函数执行。