Нерешенная функция или метод save () - PullRequest
0 голосов
/ 30 сентября 2019

mongoose model.save () метод не определен.

models / genre.js

'use strict';
const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const GenreSchema = new Schema({
    name: {type: String, required: true}
});

GenreSchema
    .virtual('url')
    .get(function () {
        return '/catalog/genre/' + this._id;
    });

module.exports = mongoose.model('Genre', GenreSchema);

controllers / genreController.js

'use strict';
var Genre = require('../models/genre');

module.exports = {

    genre_get: function (req, res) {
        res.render('catalog/createGenre');
    },
    genre_post: function (req, res) {
        var genre = new Genre(
            { name: req.body.name }
        );
        genre.save(function (err) {
            if (err) { return err; }
            res.redirect('catalog/genre/list');
        });
    }
};

Ошибка

image of error

Я попытался выполнить некоторые работы в реактивных мозгах:

после них они говорят в контроллере:

var Genre = require('../models/genre.js').Genre;

это решило проблему и решило функцию, но позже возникла ошибка, сообщающая Genre is not a constructor при отправке почтового запроса в:

`var genre = new Genre(
        { name: req.body.name }
    );`

Решено: Это просто решило проблему

var genre = mongoose.model('Genre', GenreSchema); module.exports = genre;

Ответы [ 2 ]

0 голосов
/ 01 октября 2019
"use strict";
var Genre = require("../models/genre");

module.exports = {
  genre_get: function(req, res) {
    res.render("catalog/createGenre");
  },
  genre_post: function(req, res) {
    var genre = new Genre({ name: req.body.name });
    genre
      .save()
      .then(() => {
        res.redirect("catalog/genre/list");
      })
      .catch(err => {
        console.log(err);
        res.redirect("catalog/genre/list");
      });
  }
};
0 голосов
/ 30 сентября 2019

Вы должны использовать этот способ,

var Genre = require('../models/genre');

module.exports = {

    genre_get: function (req, res) {
        res.render('catalog/createGenre');
    },
    genre_post: function (req, res) {
        var genre = new Genre(
            { name: req.body.name }
        );
        genre.save((err , saved)=>{ \\updated
            if (err) { return err; }
            else{
               res.redirect('catalog/genre/list');
            } 
        });
    }
};
...