J'ai quelques tests - à savoir Supertest - qui chargent mon application Express. Cette application crée une connexion Mongoose. Je voudrais savoir comment vérifier l'état de cette connexion depuis mon test.
Dans app.js
mongoose.connect(...)
Dans test.js
console.log(mongoose.connection.readyState);
Comment accéder à la connexion app.js? Si je me connecte en utilisant les mêmes paramètres dans test.js, cela va-t-il créer une nouvelle connexion ou en rechercher une existante?
Étant donné que le module mangouste exporte un objet singleton, vous n'avez pas à vous connecter dans votre test.js
pour vérifier l'état de la connexion:
// test.js
require('./app.js'); // which executes 'mongoose.connect()'
var mongoose = require('mongoose');
console.log(mongoose.connection.readyState);
états prêts étant:
J'utilise ceci pour mon état mongoDB Express Server, où j'utilise le middleware express-healthcheck
// Define server status
const mongoose = require('mongoose');
const serverStatus = () => {
return {
state: 'up',
dbState: mongoose.STATES[mongoose.connection.readyState]
}
};
// Plug into middleware.
api.use('/api/uptime', require('express-healthcheck')({
healthy: serverStatus
}));
Donne cela dans une demande Postman lorsque la base de données est connectée.
{
"state": "up",
"dbState": "connected"
}
Donne cette réponse lorsque la base de données a été arrêtée.
{
"state": "up",
"dbState": "disconnected"
}
(Le "up" dans les réponses représente mon état Express Server)
Facile à lire (pas de chiffres à interpréter)