这是型号: /doc/proModel.js
module.exports = function (mongooseModels) {
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/DocTest');
var Schema = mongoose.Schema;
var ProSchema = new Schema({
_id: {type: Schema.Types.ObjectId},
Titre: {
type: String,
//required: true
},
Prenom: {
type: String,
//required: true
},
Nom: {
type: String,
//required: true
}
});
var proModel = {
Pro: mongoose.model("Pro", ProSchema)
};
return proModel;
这是main.js:
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/DocTest');
var proModel = require('./doc/proModel');
var pro1 = new proModel().Pro({
_id :{type: new mongoose.Types.ObjectId()},
Nom: "Ok"
});
pro1.save(function (err) {
if (err) return handleError(err);
});
这是我收到的错误:
发生异常:错误 ReferenceError:未定义handleError 在/Users/maxime/Documents/Projets/Test/main.js:11:21 在Model。$ wrapCallback(/Users/maxime/Documents/Projets/Test/node_modules/mongoose/lib/model.js:3835:16) at /Users/maxime/Documents/Projets/Test/node_modules/mongoose/lib/services/model/applyHooks.js:167:17 at _combinedTickCallback(internal / process / next_tick.js:73:7) at process._tickCallback(internal / process / next_tick.js:104:9) 在Timeout.Module.runMain [as _onTimeout](module.js:606:11) 在ontimeout(timers.js:386:14) 在tryOnTimeout(timers.js:250:5) 在Timer.listOnTimeout(timers.js:214:5)
非常感谢任何想法
干杯,
答案 0 :(得分:0)
所以有多个错误
第一个handleError(err)
,您的函数handleError
不存在。
第二,保存模型的方式是错误的。 以下是我编写代码的方法:
/doc/proModel.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ProSchema = new Schema({
_id: {type: Schema.Types.ObjectId},
Titre: {
type: String,
//required: true
},
Prenom: {
type: String,
//required: true
},
Nom: {
type: String,
//required: true
}
});
module.exports = mongoose.model("Pro", ProSchema);
/main.js
const mongoose = require('mongoose');
const ProModel = require('./doc/proModel');
mongoose.connect('mongodb://127.0.0.1/DocTest');
const pro1 = new ProModel({
_id : new mongoose.Types.ObjectId(),
Nom: "Ok"
});
const handleError = function() {
console.error(err);
// handle your error
};
pro1.save(function (err) {
if (err) return handleError(err);
});
根据模型组织,这是我喜欢的应用程序结构
/models
pro-model.js
users-model.js
books-model.js
orders-model.js
index.js
// /models/index.js file
const fs = require('fs');
fs.readdirSync(__dirname)
.forEach((file) => {
if (file.endsWith("-model.js")) {
const M = require(`./${file}`);
exports[M.modelName] = M;
}
});
然后,如果您想获得所有模型,您可以这样做:
const models = require('./models');
new models.Pro({
_id : new mongoose.Types.ObjectId(),
Nom: "Ok"
})
.save();