javascript - 导出 mongoose 数据库模块

标签 javascript node.js mongodb express mongoose

我需要导出我的 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({});

是否可以使用“导出”或“模块导出”来做到这一点?谢谢。

最佳答案

我通常不使用 erroropen 事件并遵循 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();

希望有帮助!

关于javascript - 导出 mongoose 数据库模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668547/

相关文章:

php - 在使用 Doctrine MongoDB ODM 时如何存储 ObjectId?

javascript - 在 jquery 中循环遍历所有类名为 'blah' 的元素,并在函数中使用元素的内容

Javascript slider 不显示数组?

javascript - 处理大型 JSON 文件的最佳实践

javascript - 使用 Graphql 时在 Mongoose 模式中填充 "Ref"

mongodb - 按多个字段对值进行分组

javascript - Angular 如何与 Ionic 应用程序中的 Node 一起工作?

javascript - 在 X 轴上添加自定义点 - Kendo UI

javascript - 更改文件夹中的图像不会反射(reflect)浏览器中的更改

node.js 文件上传配置