| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | /** * 控制器基类 * * @author CaiAoLin * @date 2017/6/29 * @version */const Moment = require('moment');const Url = require('url');const UserMessageModel = require('../../users/models/user_message_model');class BaseController {    /**     * 页面title     *     * @var string     */    title = '';    /**     * 初始化函数     *     * @param {object} request     * @param {object} response     * @param {function} next     * @return {void}     */    async init(request, response, next) {        // 获取当前控制器和动作名称        let urlInfo = Url.parse(request.originalUrl, true);        let url = urlInfo.pathname.substr(1);        let actionInfo = url.split('/');        let controller = 'index';        let action = 'index';        switch (actionInfo.length) {            case 1:                controller = actionInfo[0];                break;            case 2:                controller = actionInfo[0];                action = actionInfo[1];                break;            default:                controller = actionInfo[0];                break;        }        response.locals.controller = controller;        response.locals.action = action;        // moment工具        response.locals.moment = Moment;        // url相关数据        response.locals.urlQuery = JSON.stringify(urlInfo.query);        // 获取当前用户数据        let sessionUser = request.session.sessionUser;        // 获取当前用户消息数量        let userMessageModel = new UserMessageModel();        // 消息处理        await userMessageModel.initMessage(sessionUser.id);        // 获取未读数据        let messageUnreadCount = await userMessageModel.count({user_id: sessionUser.id, is_read: 0, is_delete: 0});        response.locals.unreadCount = messageUnreadCount;        next();    }}module.exports = BaseController;
 |