node js module.exports的模块参数

时间:2015-01-26 08:57:30

标签: javascript node.js mongodb mongoose

我是 Node.js 的新手,我已经创建了一个基于mongoose的模块,但我的配置功能有问题。

实际上我的模块使用 mongoose.connect 连接,但我想更改它以使用 mongoose.createConnection 。为此,我创建了一个 init 函数,该函数接受连接字符串作为参数。

我的问题是“如何 module.exports 连接到我的模块?”

例如:

// server.js
var mymodule = require('mymodule');
mymodule.init('http://localhost:27017/test');

// mymodule/index.js
var mongoose = require('mongoose');
module.exports = {
  init: function(connString){
    module.exports = connection = mongoose.createConnection(connString); // this is wrong
  }
}

// mymodule/user.js
// I want to use the connection to create the mongoose 'User' model
var mongoose   = require('mongoose');
var connection = require // I don't know
var UserSchema = new mongoose.Schema({
  name: String
});

module.exports = connection.model('User', UserSchema);

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

mongoose.createConnection()是同步的,因此您应该只能从方法中返回连接。

var mongoose = require('mongoose');
module.exports = {
  init: function(connString){
    return mongoose.createConnection(connString);
  }
}

然后你可以这样做:

var module = require('myModule');
var db = module.init('mongodb://etc/db');