猫鼬路径“。”是必需的-PostmanMocking是否有问题?

时间:2020-05-04 18:07:34

标签: mongodb mongoose postman

我正在测试我的猫鼬(用于MongoDB)架构,并且遇到验证问题。制作POST动词后,我遇到了错误:

    "message": {
        "errors": {
            "number": {
                "message": "Path `number` is required.",
                "name": "ValidatorError",
                "properties": {
                    "message": "Path `number` is required.",
                    "type": "required",
                    "path": "number"
                },
                "kind": "required",
                "path": "number"
            }
        },
        "_message": "eventArrayModel validation failed",
        "message": "eventArrayModel validation failed: number: Path `number` is required.",
        "name": "ValidationError"
    }

这是我在邮递员中嘲笑的json: JSON mocked file

{
    "arrayName": "displayedEvents",
    "number": "4"
}

这是我的猫鼬模式:

  const mongoose = require("mongoose");

const  eventSchema =  new mongoose.Schema({
    title: {
        type: String,
    //    required: true,
    },
    start: {
        type: Date,
     //   required: true,
    },
    end: {
        type: Date,
     //   required: true,
    },
    allDay: {type: Boolean, default: true},
    resource: {
        type: String,
      //  required: true,
    },
});

const eventArrayModel = mongoose.model("eventArrayModel", {
    arrayName: {
        type: String,
        required: true,
    },
   array: {type: [eventSchema]} ,
   number: {
        type: Number,
        required: true,
    }
});

module.exports = eventArrayModel;

和获取路由器:

router.get('/',  async (req,res)=> {
try{
    const posts = await eventArrayModel.find();
    res.json(posts);

}catch(err){
    res.json({message: err});
}

});

我看不到有关此代码的任何错误。没有数字字段,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

我发现了,这是代码的一部分

router.post('/', async(req,res)=>{
  const post = new eventArrayModel({
      arrayName: req.body.arrayName
  });
  try {
      const savedPost = await post.save();
      res.json(savedPost);
  }catch(err){
      res.json({message: err});
  }

});

应该看起来像这样:

router.post('/', async(req,res)=>{
  const post = new eventArrayModel({
      arrayName: req.body.arrayName,
      array: req.body.array,
      myNumber: req.body.myNumber
  });
  try {
      const savedPost = await post.save();
      res.json(savedPost);
  }catch(err){
      res.json({message: err});
  }

});