base_controller.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * 控制器基类
  3. *
  4. * @author CaiAoLin
  5. * @date 2017/6/29
  6. * @version
  7. */
  8. import Moment from "moment";
  9. import Url from "url";
  10. import UserMessageModel from "../../users/models/user_message_model";
  11. class BaseController {
  12. /**
  13. * 页面title
  14. *
  15. * @var string
  16. */
  17. title = '';
  18. /**
  19. * 构造函数
  20. *
  21. * @return {void}
  22. */
  23. constructor() {
  24. if (new.target === BaseController) {
  25. throw new Error('BaseController不能实例化,只能继承使用。');
  26. }
  27. }
  28. /**
  29. * 初始化函数
  30. *
  31. * @param {object} request
  32. * @param {object} response
  33. * @param {function} next
  34. * @return {void}
  35. */
  36. async init(request, response, next) {
  37. response.locals.title = 'test';
  38. // moment工具
  39. response.locals.moment = Moment;
  40. // url相关数据
  41. let urlInfo = Url.parse(request.originalUrl, true);
  42. response.locals.urlQuery = JSON.stringify(urlInfo.query);
  43. // 获取当前用户数据
  44. let sessionUser = request.session.sessionUser;
  45. // 获取当前用户消息数量
  46. let userMessageModel = new UserMessageModel();
  47. let messageUnreadCount = await userMessageModel.count({user_id: sessionUser.id, is_read: 0, is_delete: 0});
  48. response.locals.unreadCount = messageUnreadCount;
  49. next();
  50. }
  51. }
  52. export default BaseController;