mongoose连接作为nodejs应用程序中的单独模块

时间:2016-02-15 09:14:53

标签: node.js mongodb express mongoose

在我的项目中,我想创建一个单独的模块来获取mongoose连接,比如connection.js,

        var mongoose = require('mongoose');
        mongoose.connect('mongodb://host:port/db');
        mongoose.connection.on('connected', function () {
            console.log('Mongoose default connection open to localhost:27017' );


        // If the connection throws an error
        mongoose.connection.on('error',function (err) {

            console.log('Mongoose default connection error: ' + err);

        });

        // When the connection is disconnected
        mongoose.connection.on('disconnected', function () {
            console.log('Mongoose default connection disconnected'); 

        });
        module.exports= mongoose;

我可以使用另一个文件中的require导入,例如file1.js,作为

    var connect_to_mongoose = require('connection');

必要时。 但我遇到的问题是,因为在nodejs IO是异步的,那么我怎样才能确保连接成功,我现在可以使用connect_to_mongoose变量进行查询,插入,删除等。

我的第二个问题是,在处理上述场景后,我如何管理多个数据库的多个连接。 Bcoz据我所知(出于实际原因)在mongoose中只有一个连接专用于一个数据库。

1 个答案:

答案 0 :(得分:1)

我认为你应该在使用mongodb和mongoose时考虑场景。

  1. mongoose.connect会在应用启动后立即打开默认连接
  2. 如果您正在处理多个表/集合(无论您如何调用),则不必每次都创建新连接。
  3. 如果您正在处理多个数据库,那么您可以将您的mongodb网址分开,例如 mongoose.connect(mongodb:// localhost / db1)&& mongoose.connect(mongodb的://本地主机/ DB2)
  4. 但是上面没有。 3将为您提供警告:尝试关闭打开的连接
  5. 要解决上述问题,请使用以下内容:

    var db = mongoose.createConnection(mongodb:// localhost / db1)

  6. 完成所有任务后关闭连接

    干杯:)