csycms-core
Version:
Markdown powered Knowledgebase
44 lines (36 loc) • 985 B
JavaScript
;
/**
* Error-Handling Middleware
* Errors: 404, 500, 403
* @param {*} csystem
*/
function handler(csystem) {
return function (err, req, res, next) {
let status = err.code || 500;
let msg = err.msg || err.message || err || 'unknown error'
if (typeof msg === 'object') {
msg = JSON.stringify(msg)
}
const config = csystem.config
if (!req.session) req.session = {}
res.status(status);
let renderConfig = {
layout: 'layout',
config: config,
status: status,
message: config.lang.error[status] || msg,
error: {},
body_class: 'page-error',
loggedIn: ((config.authentication || config.authentication_for_edit) ? req.session.loggedIn : false)
}
res.render(`errors/error-${status}`, renderConfig, (err, html) => {
if (err) {
res.render('errors/error', renderConfig);
} else {
res.send(html);
}
});
};
}
// Exports
module.exports = handler;