UNPKG

morpress.js

Version:

A simple API framework without dependencies

43 lines (35 loc) 1.12 kB
// src/errorHandler.js const fs = require('fs'); const path = require('path'); class ErrorHandler { constructor(logFilePath = path.join(__dirname, 'errors.log')) { this.logFilePath = logFilePath; } handle(err, req, res) { this.logError(err, req); const statusCode = this.getStatusCode(err); res.statusCode = statusCode; res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ error: this.getErrorType(err), message: err.message })); } logError(err, req) { const logMessage = ` [${new Date().toISOString()}] ${req.method} ${req.url} Error: ${err.message} Stack: ${err.stack} `; fs.appendFile(this.logFilePath, logMessage + '\n', (fileErr) => { if (fileErr) console.error('Failed to write to log file:', fileErr); }); } getStatusCode(err) { return err.statusCode || 500; } getErrorType(err) { return err.name || 'Internal Server Error'; } } module.exports = new ErrorHandler();