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