Mongoose: ¿El proceso de pruebas unitarias no sale debido a mangoose?

Creado en 16 oct. 2017  ·  3Comentarios  ·  Fuente: Automattic/mongoose

Hola
4.12.0

Agregué algunas pruebas de Mocha/Chai a mi aplicación de trabajo (Express+mangoose) y noté algo que no estaba visible al ejecutar la aplicación.

Asunto
Cuando ejecuto mis pruebas unitarias, el proceso nunca sale y está inactivo debido a mangoose (aparentemente).

No hay nada sorprendente en el fragmento de código a continuación... Intenté algo de mongoose#disconnect al final de mi prueba, pero no cambia nada...

¿Podría aconsejarme sobre qué está bloqueando la salida del proceso?

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

Comentario más útil

Forzar la salida del proceso es solo una solución. El problema es que parece que si tiene varias conexiones abiertas y usa mongoose.disconnect() , todavía deja un socket abierto.

Todos 3 comentarios

cada vez que uso el mongoose.connect , siempre recibo estas advertencias

Advertencia de desuso: open() está en desuso en mongoose >= 4.11.0, use openUri() en su lugar, o configure la opción useMongoClient si usa connect() o createConnection() . Consulte http://mongoosejs.com/docs/connections.html#use-mongo-client

estoy en el nodo: 8.7 , mangosta: 4.12.2

prueba esto,

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



Bueno, mi culpa no fue culpa del mangosta.

Estoy usando mocha y tuve que agregar el parámetro --exit para forzar la llamada a procesar.salir.

Supongo que sin este parámetro mocha simplemente... no hace nada al final de la prueba y espera.

Forzar la salida del proceso es solo una solución. El problema es que parece que si tiene varias conexiones abiertas y usa mongoose.disconnect() , todavía deja un socket abierto.

¿Fue útil esta página
0 / 5 - 0 calificaciones