如何将外部模型包含在mongoose中?

我有一个问题,当我想包括我的模型在python在nodejs,我创build一个模式像这样

var mongoose = require('mongoose') , Schema = mongoose.Schema; var Users = new Schema({ idUser : {type:String}, username: {type:String} }); // middleware Users.pre('save', function (next,done) { notify(this.get('email') + done); // something goes wrong next(new Error('something went wrong')); }); //registered on mongoose models mongoose.model("Users",Users); 

我保存在folde models / schema.js但我不知道如何在app.js中调用该文件,当我尝试使用此代码

 var mongoose = require('mongoose') , models = require('./models/schema.js'); //mongoose configurationfor database; var db = mongoose.connect("mongodb://localhost/vynchat"); var users = mongoose.model("Users"); users.save(); 

当我尝试启动sudo node app.js时,出现错误

 throw e; // process.nextTick error, or 'error' event on first tick ^ TypeError: Object function model() { Model.apply(this, arguments); } has no method 'save' at Object.<anonymous> (/opt/development/vynapp/app.js:18:7) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40) 

错误模型()没有方法保存…我怎么能解决这个..?

你正在调用users.save(); 但是, users是一个模型

save方法可用于模型的实例,如下所示:

 var mongoose = require('mongoose') , models = require('./models/schema'); var db = mongoose.connect("mongodb://localhost/vynchat") , Users = mongoose.model("Users"); var user = new User({ "your": "data" }); user.save(function (err, model) { if (err) throw err; console.log("My new User is saved", "`save` hook worked as espected since we had no errors here"); }); 

您应该阅读node.js 模块API并仔细阅读mongoose API 。

作为一个方面的说明:当你require('mongoose')第一次在你的代码节点将给你一个mongoose连接器的实例,随后的要求将产生相同的对象。

创build模型对象时缺less模式对象参数。 做这个:

 var users_model = mongoose.model("Users", YourSchemaObject); var User_Document = new user_model(); User_Document.field_name = 'value'; //here you can access getter/setter/methods User_Document.save();