node-web-mvc
Version:
node spring mvc
34 lines (33 loc) • 1.5 kB
JavaScript
;
/**
* @module MiddlewareInterceptor
* @description 描述
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Middlewares_1 = __importDefault(require("../models/Middlewares"));
const HandlerInterceptor_1 = __importDefault(require("./HandlerInterceptor"));
class MiddlewareInterceptor extends HandlerInterceptor_1.default {
constructor(...middlewares) {
super();
this.middlewares = middlewares || [];
}
/**
* 在处理action前,进行请求预处理,通常可以用于编码、安全控制、权限校验
* @param { HttpRequest } request 当前请求对象
* @param { HttpResponse } response 当前响应对象
* @param { ControllerContext } handler 当前拦截待执行的函数相关信息
* @returns { boolean }
* 返回值:true表示继续流程(如调用下一个拦截器或处理器);false表示流程中断(如登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应;
*/
preHandle(request, response, handler) {
if (this.middlewares.length < 1) {
return true;
}
const invoker = new Middlewares_1.default(this.middlewares);
return invoker.execute(request, response, () => true);
}
}
exports.default = MiddlewareInterceptor;