error-handler.js 1.57 KB
/**
 * 404 错误
 * @return {[type]}
 */
const headerModel = require('../models/header');
const logger = require('../../library/logger');

exports.notFound = () => {
    return (req, res) => {
        if (req.xhr) {
            return res.status(404).json({
                code: 404,
                message: '抱歉,页面不存在!'
            });
        }
        return res.render('error/404', {
            module: 'common',
            page: 'error',
            title: '页面不存在 | Yoho!Buy有货 | 潮流购物逛不停',
            pageHeader: headerModel.setNav({
                navTitle: '抱歉,页面不存在!'
            }),
            pageFooter: true,
            isErr: true
        });
    };
};

/**
 * 服务器错误
 * @return {[type]}
 */
exports.serverError = () => {
    return (err, req, res, next) => {
        logger.error(`error at path: ${req.url}`);
        logger.error(err);
        if (!res.headersSent) {
            if (req.xhr) {
                return res.status(500).json({
                    code: 500,
                    message: '服务器错误!'
                });
            }

            return res.render('error/500', {
                err: err,
                module: 'common',
                page: 'error',
                title: '服务器错误 | Yoho!Buy有货 | 潮流购物逛不停',
                pageHeader: headerModel.setNav({
                    navTitle: '服务器错误!'
                }),
                pageFooter: true,
                isErr: true
            });
        }
        next(err);
    };
};