如果我在郵遞員的數字欄位中輸入多于或少于 10 位數字,phone我會在終端中收到驗證錯誤訊息,并且服務器會崩潰,但我想在郵遞員 JSON 中獲得該錯誤訊息。怎么做?
schema.js
const { json } = require("body-parser");
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const SomeModelSchema = new Schema({
phone: {
type: Number,
required:true,
unique: true,
validate: {
validator: (val) => {
var re = /^\d{10}$/;
return (!val ) || re.test(val)
},
message: 'Provided phone number is invalid.'
},
},
module.exports = mongoose.model("SomeModel", SomeModelSchema);
發布方法
router.post("/admin/add_profile", async (req, res) => {
try {
const send = new SomeModel({
phone: req.body.phone,
});
send.save();
res.json({
responseMessage: "Everything worked as expected",
});
} catch (error) {
res.status(400).send(err.message);
}
});
終端中的錯誤訊息,但我需要phone number is invalid在郵遞員回應中
顯示錯誤訊息
uj5u.com熱心網友回復:
await你應該save()打電話。否則呼叫會繼續運行,但它永遠不會到達 catch 塊,因為錯誤是在你的 Promise 中異步拋出的。
這也是您的整個應用程式崩潰并且沒有捕獲此錯誤的原因。
這意味著只需使用即可await send.save();解決問題。之后,您的 catch 塊將被處理。不幸的是,您在名為的變數中發現了錯誤error,但您嘗試從名為的變數中讀取訊息err,這仍然需要更正。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/524244.html
下一篇:洗掉嵌套檔案-貓鼬
