Node.js: eseguire il logging degli errori su MongoDB

Node.js: eseguire il logging degli errori su MongoDB

In Node.js possiamo eseguire il logging degli errori su MongoDB.

Installiamo Mongoose:


npm install mongoose --save

Definiamo il seguente schema per i log:


'use strict';

const mongoose  = require('mongoose');

let Schema  = mongoose.Schema;

let LogSchema = new Schema({
    time: Date,
    file: String,
    line: String,
    info: Mixed,
    type: String

},{collection: 'logs'});

module.exports = mongoose.model('logs', LogSchema);

Quindi definiamo la seguente funzione:


'use strict';

const log = (data, logs) => {
    let newLog = new logs({
        time: new Date(),
        file: data.file,
        line: data.line,
        info: data.info,
        type: data.type
    });
    newLog.save();
};

Usiamo la funzione in questo modo:


'use strict';

const app = require('express')();
const users = require('./models/users');
const logs = require('./models/logs');

app.get('/users', async (req, res) => {
    try {
        let results = await users.find();
        res.send(results);
    } catch(err) {
        log({
            file: 'app.js',
            line: '10',
            info: err,
            type: 'error'
        }, logs);
        res.sendStatus(500);
    }
});

Torna su