Запуск в Mon goose ValidationError - PullRequest
       21

Запуск в Mon goose ValidationError

0 голосов
/ 08 апреля 2020

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

Моя схема цитат выглядит следующим образом:

var quoteSchema = mongoose.Schema({
    text: String,
    pageNum: String
});

И моя схема книги выглядит следующим образом:

var bookSchema = new mongoose.Schema({
    title: String,
    image: String,
    author: String,
    yearWritten: String,
    quotes: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: "Quote"
        }
    ],
    favorite: Boolean
});

Маршрут, который должен выполнять фактическое создание и сохранение цитаты в книге, выглядит следующим образом:

router.post("/", function(req, res) {
//  Look up book using ID
    Book.findById(req.params.id, function(err, book) {
        if(err) {
            console.log(err);
            res.redirect("/books");
        } else {
//          Create new quote
            Quote.create(req.body.quote, function(err, quote) {
                if(err) {
                    console.log(err);
                    res.redirect("/books");
                } else {
//                  Save quote
                    quote.save();
//                  Add new quote to book
                    book.quotes.push(quote);
//                  Save the book
                    console.log(book.quotes);
                    book.save(); // THIS IS THE ERROR!
                    // console.log(quote);
                    // console.log(book);
//                  Redirect to book show page
                    res.redirect("/books/" + book._id);
                }
            });
        }
    });
});

Я получаю сообщение об ошибке:

(node:5606) UnhandledPromiseRejectionWarning: ValidationError: Book validation failed: quotes: Cast to [undefined] failed for value "[{"_id":"5e8c
e6fc6ced1d075192ac21"}]" at path "quotes"

Я почти уверен, что это связано с сохранением книги, но я не совсем уверен, как это исправить. Это. Любая помощь приветствуется!

...