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