UNPKG

node-web-mvc

Version:
40 lines (39 loc) 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ResponseBody_1 = __importDefault(require("../../annotations/ResponseBody")); const HttpStatus_1 = __importDefault(require("../../http/HttpStatus")); const RequestBody_1 = __importDefault(require("../../annotations/params/RequestBody")); const AbstractMessageConverterMethodProcessor_1 = __importDefault(require("./AbstractMessageConverterMethodProcessor")); class RequestResponseBodyMethodProcessor extends AbstractMessageConverterMethodProcessor_1.default { supportsReturnType(returnType) { return returnType.hasClassAnnotation(ResponseBody_1.default) || returnType.hasMethodAnnotation(ResponseBody_1.default); } supportsParameter(paramater, servletContext) { return paramater.hasParameterAnnotation(RequestBody_1.default); } async resolveArgument(parameter, servletContext) { return this.readWithMessageConverters(servletContext, parameter.parameterType); } hasValue(returnValue) { return (returnValue !== null) && returnValue !== '' && returnValue !== undefined; } async handleReturnValue(returnValue, returnType, servletContext) { const response = servletContext.response; if (this.hasValue(returnValue)) { response.setStatus(HttpStatus_1.default.OK); // 设置Http返回状态码 await this.writeWithMessageConverters(returnValue, servletContext); } else { response.setStatus(HttpStatus_1.default.OK); } if (!servletContext.isRequestHandled) { // 结束返回流 response.end(); } } } exports.default = RequestResponseBodyMethodProcessor;