Почему я получаю ошибку проверки, хотя я предоставляю данные? - PullRequest
0 голосов
/ 25 мая 2019

По какой-то причине бэкэнд моего приложения не считает, что я предоставляю данные, хотя я и тестирую свои маршруты.

Я огляделся, но не нашелвсе, что вполне соответствует проблеме, с которой я сталкиваюсь.

Я пытался создать бэкэнд для своего приложения, следуя этой серии руководств: https://www.youtube.com/playlist?list=PL55RiY5tL51q4D-B63KBnygU6opNPFk_q

Прежде чем добавить проверкук моим моделям я получил 200 и 201 для моих HTTP-запросов.После добавления проверки я начал получать сообщения об ошибках, информирующие меня о том, что я не предоставляю необходимую информацию, даже если это так.

Я использую Mongoose 5.5.8, Cors 2.8.5, Body-Parser1.19.0, и Почтальон 7.1.1.

Я пытался использовать метод .exec () один раз, но это только дало мне худшую ошибку.

Вот моя модель:

const studentSchema = mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  first_name: { type: String, required: true },
  last_name: { type: String, required: true },
  preferred_name: { type: String, required: true }
});

module.exports = mongoose.model("Student", studentSchema);

Вот мой контроллер:

  add_student: (req, res) => {
    const student = new Student({
      _id: new mongoose.Types.ObjectId(),
      first_name: req.body.first_name,
      last_name: req.body.last_name,
      preferred_name: req.body.preferred_name
    });
    student
      .save()
      .then(result => {
        console.log(result);
        res.status(201).json({
          message: "Student added!",
          createdStudent: {
            first_name: result.first_name,
            last_name: result.last_name,
            preferred_name: result.preferred_name
          }
        });
      })
      .catch(err => {
        console.log(err);
        res.status(422).json({
          error: err
        });
      });
  },

Вот мой маршрут:

router.route("/")
  .post(studentController.add_student)

А вот данные, которые я пытаюсь передать через Почтальон:

{
"first_name": "Steve",
"last_name": "Jones",
"preferred_name": "Stevie Boy"
}

Как видите, я передаю данные, но продолжаю получать ошибки, как будто там вообще нет информации.

Я думаю, мне нужно знать, как правильно предоставить пропускданные через мой контроллер, поэтому мое приложение не думает, что я пытаюсь передать пустой объект.

1 Ответ

0 голосов
/ 26 мая 2019

Я столкнулся с ошибкой пользователя (меня).В Почтальоне, Screen grab of my Postman GUI

Там, где написано JSON (application / json), я сказал это тексту.Установка JSON устранила мою проблему.

И не сомневаюсь, я чувствую себя довольно глупо по этому поводу!

...