将带有joigoose的自定义错误发送到客户端

问题描述

我开始在服务器上使用验证,很快就知道如果我想将JOi与Mongoose模式一起使用,则必须使用joi,因此在这里我将其设置为这样

models.js

const mongoose = require("mongoose");
const Joigoose = require("joigoose")(mongoose);
const Joi = require("joi");
const Schema = mongoose.Schema;

var joiSchema = Joi.object({
  title: Joi.string()
    .min(2)
    .max(255)
    .trim()
    .required()
    .error(new Error("well it is required")),});

var productSchema = new Schema(Joigoose.convert(joiSchema));


module.exports = mongoose.model("Product",productSchema);

controller.js

const Product = require("../models/product");
const Joi = require("joi");
exports.addProduct = (req,res,next) => {
  // console.log(req.body);
  let data = req.body;
  const product = new Product({
    title: data.title,price: data.price,});
  product
    .save()
    .then((result) => {
      console.log("Created Product");
      res.json(result);
    })
    .catch((err) => {
      console.log(err);
    });
};

因此,对于“标题”,我将其设置为最小长度为2,那么即使我遇到错误,如何为此设置自定义错误消息?

截至目前,我收到类似

错误

错误:产品验证失败:标题:路径验证程序失败 title的值为7

我想设置自定义错误消息,以便可以将其发送给客户端并显示

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)