123456789101112131415161718192021222324252627 |
- 'use strict';
- // url类
- const Url = require('url');
- module.exports = options => {
- /**
- * 控制器以及动作的获取
- *
- * @param {function} next - 中间件继续执行的方法
- * @return {void}
- */
- return function* urlParse(next) {
- this.actionName = '';
- // 获取当前控制器和动作名称
- const urlInfo = Url.parse(this.request.originalUrl, true);
- const url = urlInfo.pathname.substr(1);
- const actionInfo = url.split('/');
- this.controllerName = typeof actionInfo === 'object' && actionInfo[0] !== undefined ? actionInfo[0] : '';
- this.actionName = typeof actionInfo === 'object' && actionInfo[1] !== undefined ? actionInfo[1] : '';
- this.urlInfo = urlInfo;
- // 防止为空
- this.request.headers.referer = this.request.headers.referer === undefined ? '/dashboard' : this.request.headers.referer;
- yield next;
- };
- };
|