Пн goose Ошибка проверки при попытке запроса POST - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать мультимедийное приложение, в котором есть категории и шутки.

Когда я отправляю POST-запрос в / api / category / new, я получаю эту ошибку:

{
      message: 'Path `joke` is required.',
      name: 'ValidatorError',
      properties: [Object],
      kind: 'required',
      path: 'joke',
      value: undefined,
      reason: undefined,
      [Symbol(mongoose:validatorError)]: true
    },

Я также получаю ту же ошибку (под этой ошибкой), но вместо пути joke для пути user.

Модель

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

// Joke Schema
const jokeSchema = new Schema({
  user: { type: String , required: true},
  joke: { type: String, required: true, maxlength: 100 },
});

// Category Schema
const categorySchema = new Schema({
  name: { type: String, required: true, unique: true },
  description: { type: String, required: false },
  likes: { type: Number },
  jokes: [jokeSchema],
});

module.exports = mongoose.model("category", categorySchema);
module.exports = mongoose.model("joke", jokeSchema);

Маршрут

const router = require("express").Router();

//category model
const Category = require("../models/model");

// POST /api/category/new : Creates a new cartgory
router.post("/new", (req, res) => {
  const newCategory = new Category({
    name: req.body.name,
    description: req.body.description,
    likes: 0,
    jokes: [],
  });
  newCategory
    .save()
    .then((category) => res.json(category))
    .catch((err) => console.log(err));
});

module.exports = router;

1 Ответ

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

Вы перезаписываете свой module.exports. У вас их два в models/model.js:

module.exports = mongoose.model("category", categorySchema);
module.exports = mongoose.model("joke", jokeSchema);

Следовательно, когда вы const Category = require('../models/model') получаете jokeSchema вместо категории, отсюда и ошибка проверки, связанная со схемой шуток.

Просто удалите module.exports = mongoose.model("joke", jokeSchema);, и он должен работать, или выполните следующие действия:

модели / модели. js

module.exports = {};
module.exports.category = mongoose.model('category', categorySchema);
module.exports.joke = mongoose.model('joke', jokeSchema);

маршруты / Категория Маршрутизатор. js

//category model
const Category = require('../models/model').category;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...