Dan*_*iel 7 javascript mongoose mongodb node.js express
我需要导出我的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);
});
Run Code Online (Sandbox Code Playgroud)
我想能够添加var db = require('../my_modules/database');到我的程序的任何其他模块 - 所以我将能够使用这样的模型:
db.DynamicUserItem.find(); 要么 item = new db.DynamicUserItem({});
是否可以使用"出口"或"模块出口"来做到这一点?谢谢.
zem*_*rco 23
我通常不使用error和open事件,并按照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
Run Code Online (Sandbox Code Playgroud)
然后在你的app.js中你可以做类似的事情
var Cat = require('db');
var peter = new Cat();
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
您可以使用导出来定义其他地方可能需要的模块:
./models/list.js
var ListSchema = new Schema({
name : { type: String, required: true, trim: true }
, description : { type: String, trim: true }
});
module.exports = db.model('List', ListSchema);
Run Code Online (Sandbox Code Playgroud)
./routes/list.js
var list = module.exports = {};
var List = require('../models/list');
list.get = function(req, res){
List.find({ user: user._id }).exec(function(err, lists){
res.render('lists', {
lists: lists,
});
});
});
};
Run Code Online (Sandbox Code Playgroud)
./app.js
app.get('lists', routes.lists.get);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36269 次 |
| 最近记录: |