【发布时间】:2021-08-14 02:20:23
【问题描述】:
所以,我正在开发一个完整堆栈的 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 之后执行
请问我应该怎么做
【问题讨论】:
-
res.send()只是一个常规的函数调用。您的函数体继续执行连续的代码行,就像在任何其他函数调用之后一样。如果要退出函数,请在res.send()之后添加return;语句。
标签: javascript node.js express jwt joi