當我將 mongoose.connection 存盤在一個名為的變數中db并創建一個單獨的方法來通過變數關閉連接時,我無法關閉 mongoose 連接db
我已經嘗試了兩種方法db.close&mongoose.disconnect()
const mongoose = require('mongoose');
var db;
const connectToDB = function (callback) {
let dbUrl;
if (environmentTokens.enviroment === "test") {
dbUrl = localDBUrl;
} else {
dbUrl = environmentTokens.mongoDBUrl;
}
mongoose.connect(dbUrl);
db = mongoose.connection
db.on('error', (err) => {
tracer.error('Connection error with database', err);
})
db.on('connected', () => {
tracer.info('Connected with database', dbUrl);
console.log('Mongoose default connection connected');
callback();
})
};
const getDB = function () {
return db;
};
const disconnectDB = function () {
db.close(function () {
console.log('Mongoose default connection disconnected through app termination')})
// mongoose.disconnect(function () {
// console.log('Mongoose default connection disconnected through app termination')})
}
module.exports = {
connectToDB, disconnectDB, getDB
};
并從檔案中呼叫disconnectDB方法index.js
process.on('SIGINT', () => {
disconnectDB();
process.exit()
})
uj5u.com熱心網友回復:
連接正在關閉,但您的程式在呼叫回呼之前退出。
要確認,請嘗試:
process.on('SIGINT', () => {
disconnectDB(true);
})
const disconnectDB = function (exit=false) {
db.close(function () {
console.log('Mongoose default connection disconnected through app termination')})
if (exit) process.exit()
})
// mongoose.disconnect(function () {
// console.log('Mongoose default connection disconnected through app termination')})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530355.html
上一篇:MongoDB中的復雜聚合
