J'ai une application utilisant nodejs et mongodb. J'ai utilisé mongoose pour ODM. Maintenant, je veux enregistrer toutes les requêtes que mongoose lance pendant toute l'application.
Comment les enregistrer ?
J'ai une application utilisant nodejs et mongodb. J'ai utilisé mongoose pour ODM. Maintenant, je veux enregistrer toutes les requêtes que mongoose lance pendant toute l'application.
Comment les enregistrer ?
Vous pouvez activer le mode débogage comme suit :
mongoose.set('debug', true);
ou ajoutez votre propre rappel de débogage :
mongoose.set('debug', function (coll, method, query, doc [, options]) {
//do your thing
});
Cela permettra de consigner toutes les méthodes de collecte exécutées et leurs arguments dans la console.
Vous pouvez utiliser le format suivant :
mongoose.set("debug", (collectionName, method, query, doc) => {
console.log(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
ou tout autre enregistreur de votre choix :
mongoose.set("debug", (collectionName, method, query, doc) => {
logger(`${collectionName}.${method}`, JSON.stringify(query), doc);
});
J'utilise node bunyan, c'est une option pour déboguer et suivre les requêtes (peut aider quelqu'un d'autre).
function serializer(data) {
let query = JSON.stringify(data.query);
let options = JSON.stringify(data.options || {});
return `db.${data.coll}.${data.method}(${query}, ${options});`;
}
let log = bunyan.createLogger({
name: 'AppName',
src: false,
serializers: {
// ...
dbQuery: querySerializer
// ...
},
// ...
});
mongoose.set('debug', function(coll, method, query, doc, options) {
let set = {
coll: coll,
method: method,
query: query,
doc: doc,
options: options
};
log.info({
dbQuery: set
});
});
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.