【问题标题】:How do I close a specific database connection in mongoose如何关闭猫鼬中的特定数据库连接
【发布时间】:2018-05-08 05:08:29
【问题描述】:

在我的应用程序中,我打开了两个数据库连接。其中一个连接用于标准开发数据库。第二个连接用于我专门用于测试的单独数据库。

假设第一个连接已打开并且我的应用正在运行,并且我决定要运行我的测试。运行的第一个测试打开第二个连接,如果它已经存在则关闭它。

import mongoose from 'mongoose';
import 'dotenv/config';

mongoose.Promise = global.Promise;

describe('Mocha testing setup', function() {
  it('Connect to testing database and clear old data', function(done) {
    mongoose.connect(process.env.DB_TEST).then(db => {
      done();
    }).catch(err => {
      mongoose.connection.close().then( => {
        console.log('Testing database has been closed.');
      }).catch(done);
    });
  })
})

当我跑步时:

mongoose.connection.close()

我如何确定它不会关闭第一个连接。我需要确定它将关闭与测试数据库而不是开发数据库的连接。

【问题讨论】:

    标签: node.js mongodb mongoose nosql mocha.js


    【解决方案1】:

    你可以这样处理你的连接:

    因此,您的每个连接都将存储到一个表示它的变量中,您可以使用该变量进行交互。

      this.db = mongoose.createConnection(url, opt);
    
      // What happend when we connect
      this.db.once('open', () => {});
    
      // What happend on error
      this.db.on('error', (err) => {});
    
      this.db.on('disconnected', () => {});
    
      this.db.on('connected', () => {});
    
      this.db.on('close', () => {});
    

    【讨论】:

      【解决方案2】:

      这可能会有所帮助。不确定,但我看到的某个地方可以处理两个单独的连接,

      const devConn = mongoose.createConnection();
      devConn.open("mongodb://localhost/development",callBack1);
      
      const testConn = mongoose.createConnection();
      testConn.open("mongodb://localhost/test",callBack1)
      

      之后,您可以通过编写类似的内容来关闭任何连接,

      devConn.close(callBack2);
      testConn.close(callBack2);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-12-11
        • 2014-06-20
        • 1970-01-01
        • 1970-01-01
        • 2019-06-27
        • 2012-02-02
        • 1970-01-01
        相关资源
        最近更新 更多