我需要导出我的mongoose数据库模块,所以我可以使用我程序中每个模块的定义模型.
例如,我的database.js模块看起来像这样:
var mongoose = require('mongoose'),db = mongoose.createConnection('mongodb://localhost/newdb'),Schema = mongoose.Schema; db.on('error',console.error.bind(console,'connection error:')); db.once('open',function callback () { console.log("Connected to database newdb"); var dynamicUserItemSchema = new mongoose.Schema({ userID: Number,rank: Number,}); var staticUserItemSchema = new mongoose.Schema({ _id: Schema.Types.Mixed,type: Schema.Types.Mixed,}); var DynamicUserItem = db.model('DynamicUserItem',dynamicUserItemSchema); var StaticUserItem = db.model('StaticUserItem',staticUserItemSchema); });
我希望能够添加var db = require(‘../ my_modules / database’);到我的程序的任何其他模块 – 所以我将能够使用这样的模型:
db.DynamicUserItem.find();或item = new db.DynamicUserItem({});
是否可以使用“出口”或“模块出口”来做到这一点?谢谢.
解决方法
我通常不使用错误和打开事件,并按照
mongoosejs中的示例创建与我的数据库的连接.使用该示例,您可以执行以下操作.
db.js
var mongoose = require('mongoose'); var db = mongoose.createConnection('localhost','test'); var schema = mongoose.Schema({ name: 'string' }); var Cat = db.model('Cat',schema); module.exports = Cat; // this is what you want
然后在你的app.js中你可以做类似的事情
var Cat = require('db'); var peter = new Cat();
希望有所帮助!