create-nodejs-express
Version:
A package for creating a folder structure for nodejs/express application
52 lines (42 loc) • 1.57 kB
JavaScript
module.exports = `const fs = require('fs');
const path = require('path')
const errorHandler = (err, req, res, next) => {
const status = err.statusCode || 500;
const msg = err.message || 'Server error';
const ErrorObj = {
success: err.success,
statusCode: status,
isOperational: err.isOperational || false,
request: req.method + " " + req.originalUrl,
domain: err.domain || undefined,
message: '🔥Error🔥: ' + msg,
date: new Date().toGMTString(),
stack: err.stack,
}
// Logging the error to the log.txt file
let date = new Date();
let dirname = path.join('log', date.toLocaleDateString().split('/').join('_'));
let filename = path.join(dirname , date.getUTCHours() + '.log');
let data = JSON.stringify(ErrorObj, null, 2) + '\\r\\n\\n';
const appendLogger = () => {
fs.appendFile(filename, data, (err) => {
if (err) return console.log('Error: writing logger', err)
})
}
fs.exists(dirname, (exists) => {
if (exists) {return appendLogger()}
fs.mkdir(dirname, (err) => {
if (err) return console.log(err)
appendLogger()
})
})
if (process.env.NODE_ENV !== 'development') {
delete ErrorObj.domain;
delete ErrorObj.request;
delete ErrorObj.isOperational;
delete ErrorObj.stack;
delete ErrorObj.date;
}
res.status(status).json(ErrorObj);
}
module.exports = errorHandler`;