Mongoose: Proses pengujian unit tidak keluar karena mangga?

Dibuat pada 16 Okt 2017  ·  3Komentar  ·  Sumber: Automattic/mongoose

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

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.

Semua 3 komentar

setiap kali saya menggunakan mongoose.connect , saya selalu mendapatkan peringatan ini

DeprecationWarning: open() tidak digunakan lagi di luwak >= 4.11.0, gunakan openUri() sebagai gantinya, atau setel opsi useMongoClient jika menggunakan connect() atau createConnection() . 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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat