Javascript 未解析的函数或方法save()
未定义mongoose model.save()方法 models/genre.jsJavascript 未解析的函数或方法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
'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");
});
}
};