Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何关闭mongoose中的特定数据库连接_Node.js_Mongodb_Mongoose_Nosql_Mocha.js - Fatal编程技术网

Node.js 如何关闭mongoose中的特定数据库连接

Node.js 如何关闭mongoose中的特定数据库连接,node.js,mongodb,mongoose,nosql,mocha.js,Node.js,Mongodb,Mongoose,Nosql,Mocha.js,在我的应用程序中,我打开了两个数据库连接。其中一个连接用于标准开发数据库。第二个连接是一个单独的数据库,我专门用于测试 假设第一个连接已打开,我的应用程序正在运行,我决定运行测试。运行的第一个测试将打开第二个连接,如果该连接已经存在,则将其关闭 import mongoose from 'mongoose'; import 'dotenv/config'; mongoose.Promise = global.Promise; describe('Mocha testing setup', f

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

假设第一个连接已打开,我的应用程序正在运行,我决定运行测试。运行的第一个测试将打开第二个连接,如果该连接已经存在,则将其关闭

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()

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

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

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

  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', () => {});

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

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);