Hai
4.12.0
Saya menambahkan beberapa tes Mocha/Chai ke aplikasi kerja saya (Express+mangoose) dan saya melihat sesuatu yang tidak terlihat menjalankan aplikasi.
Masalah
Saat menjalankan tes unit saya, prosesnya tidak pernah keluar dan macet karena mangoose (tampaknya).
Tidak ada yang luar biasa dalam cuplikan kode di bawah ini... Saya mencoba beberapa luwak#disconnect di akhir pengujian saya tetapi tidak mengubah apa pun..
Bisakah Anda memberi saran tentang apa yang menghalangi proses keluar?
const mongoose = require('mongoose');
import { databaseConfig } from './config/database';
export function setupDatabase() {
mongoose.Promise = require('bluebird');
//mongoose.set("debug", true)
var connection = mongoose.connect(databaseConfig.database, { useMongoClient: true }, (err) => { console.log("Connect error: " + err) });
mongoose.connection.on('connected', () => {
console.log('Connected to database ' + databaseConfig.database);
});
mongoose.connection.on('error', (err) => {
console.log('Database error: ' + err);
});
return mongoose;
}
setiap kali saya menggunakan mongoose.connect
, saya selalu mendapatkan peringatan ini
DeprecationWarning:
open()
tidak digunakan lagi di luwak >= 4.11.0, gunakanopenUri()
sebagai gantinya, atau setel opsiuseMongoClient
jika menggunakanconnect()
ataucreateConnection()
. Lihat http://mongoosejs.com/docs/connections.html#use -mongo-client
saya di simpul: 8.7 , luwak: 4.12.2
coba ini,
const mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
import { databaseConfig } from './config/database';
async function setupDatabase() {
// mongoose.set('debug', true);
return await mongoose.connection.openUri(databaseConfig.database);
}
(async function () {
const conn = await setupDatabase();
// closing instance
await conn.close();
}());
Yah, burukku ini bukan kesalahan mangoose.
Saya menggunakan moka dan harus menambahkan parameter --exit
untuk memaksa panggilan ke process.exit.
Saya kira tanpa parameter ini moka hanya... tidak melakukan apa pun di akhir tes dan menunggu.
Memaksa proses untuk keluar hanyalah solusi. Masalahnya adalah sepertinya jika Anda memiliki beberapa koneksi terbuka dan menggunakan mongoose.disconnect()
itu masih membiarkan soket terbuka.
Komentar yang paling membantu
Memaksa proses untuk keluar hanyalah solusi. Masalahnya adalah sepertinya jika Anda memiliki beberapa koneksi terbuka dan menggunakan
mongoose.disconnect()
itu masih membiarkan soket terbuka.