Javascript 未解析的函数或方法save()

Javascript 未解析的函数或方法save(),javascript,node.js,express,mongoose,Javascript,Node.js,Express,Mongoose,未定义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(fu

未定义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);
控制器/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');
        });
    }
};
错误

我试着在jetbrains做一些工作:

他们在控制器中说:

var Genre = require('../models/genre.js').Genre;
这解决了问题并解决了函数,但后来在以下位置发出post请求时出现错误,称
流派不是构造函数

`var genre = new Genre(
        { name: req.body.name }
    );`
解决:简单地这样做就解决了问题

var-genre=mongoose.model('genre',GenreSchema)

module.exports=流派

您应该这样使用

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

它给了我一个错误
genre.save(…).exec不是一个函数
它还定义了
undresolved save()方法
仍然是相同的
未解析函数或方法save()
还有一个保存mongoose对象的干净方法是,
const X=wait Model.create({…})
"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");
      });
  }
};