node-web-mvc
Version:
node spring mvc
40 lines (39 loc) • 1.87 kB
JavaScript
;
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;