Node.js: eseguire il logging degli errori su MongoDB

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

Node.js di Gabriele Romanato

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

Commenti