Пн goose Путь "." требуется - проблема с PostmanMocking? - PullRequest
0 голосов
/ 04 мая 2020

Я тестирую свою схему mon goose (для 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 проверенный файл

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

И это моя схема goose моего понедельника:

  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;

и маршрутизатор get:

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

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

});

Я не вижу в этом ничего плохого код. Работает нормально без числового поля.

1 Ответ

0 голосов
/ 06 мая 2020

Окей, я нашел это, эта часть кода

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});
  }

});
...