Подтвердить что ты не робот

Заносить в журнал все запросы о том, что Mongoose fire в приложении

У меня есть приложение, использующее nodejs и mongodb. Я использовал mongoose для ODM. Теперь я хочу регистрировать все запросы, которые устраивают огонь во время всего приложения.

Как зарегистрировать их?

4b9b3361

Ответ 1

Вы можете включить режим отладки следующим образом:

mongoose.set('debug', true);

или добавить свой собственный отладочный ответ:

mongoose.set('debug', function (coll, method, query, doc [, options]) {
 //do your thing
});

Это приведет к регистрации всех запущенных методов сбора и их аргументов в консоли.

Ответ 2

Я использую node bunyan, это опция для отладки и отслеживания запросов (может помочь кому-то еще)

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

Ответ 3

Вы также можете установить параметры журнала отладки:

node index.js DEBUG=mquery

но это будет только регистрировать запросы, а не вставлять или обновлять операторы.