如何解决res.status(400) 使我的链接 res.send("this message") 不显示在客户端
我在尝试使用我的 Node.js 服务器来回答 res.status(400).send("message") 时遇到了这个问题。
如果我删除 res.status,“消息”就会传到我的客户端。一旦我添加了 .status(400),发送部分就不包括在内。
客户端
const handleSubmit = (e) => {
e.preventDefault();
const data = {
user: userName,email: email,password: password,};
axios
.post("http://localhost:4040/register",data)
.then((res) => console.log(res))
.catch((err) => console.log(err));
};
服务端
exports.registerUser = async (req,res,next) => {
//Validater user data
const { error } = registerValidation(req.body);
if (error) return res.status(400).send(error.details[0].message);
//Check for existing user
const emailExist = await User.findOne({ email: req.body.email });
if (emailExist) return res.status(400).send("email already in use");
//Hashing password
const hashedPassword = await bcrypt.hash(req.body.password,10);
//Upload to database
const user = new User({
user: req.body.user,email: req.body.email,password: hashedPassword,});
try {
await user.save();
res.send("User created");
} catch (err) {
console.log(err);
res.status(400).send(err);
}
};
最好的问候, 奥斯卡
解决方法
当你添加状态 400 时,它将使用 axios 转到 catch 块,当删除状态时,默认情况下将其视为 200
所以你需要通过读取err.response.data
检查 documentation 中 axios 如何处理超出 2xx 范围的错误和状态码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。