UNPKG

node-web-mvc

Version:
113 lines (112 loc) 3.23 kB
/** * @module HttpServletResponse * @description Http信息返回类 */ import { ServerResponse } from 'http'; import HttpStatus from './HttpStatus'; import MediaType from './MediaType'; import { HttpHeaderValue } from '../../interface/declare'; import type ServletContext from './ServletContext'; export default class HttpServletResponse { private tempStatusCode; private tempStatusMessage; startTime: number; /** * nodejs原生ServerResponse */ readonly nativeResponse: ServerResponse; /** * 当前请求上下文 */ get servletContext(): ServletContext; /** * 判断返回头是否已经发送 */ get headersSent(): boolean; get status(): HttpStatus; /** * 获取当前设置的返回状态编码 */ get statusCode(): any; /** * 获取当i请安设置返回状态的描述信息 */ get statusMessage(): any; /** * 获取已经设置的content-type */ get nativeContentType(): string; private writeStatus; /** * 当前请求是否有错误 */ get hasError(): boolean; /** * 获取设置的返回头 * @param name */ getHeader(name: string): string | number | string[]; getHeaderValue(name: string): (string | number)[]; addHeader(name: string, value: HttpHeaderValue, checkExists?: boolean): void; /** * 添加一个指定名称的返回头到返回头队列 * @param {String} name 返回头名称 * @param {String} value 返回头值 */ setHeader(name: string, value: HttpHeaderValue): this; /** * 返回异常,结束请i去 * @param name */ sendError(status: HttpStatus): void; /** * 判断当前返回头中是否指定头 */ containsHeader(name: string): boolean; /** * 设置日期类型返回头 */ setDateHeader(name: string, value: number | Date): this; /** * 设置返回状态 * @param response */ setStatus(status: number | HttpStatus, statusMessage?: any): this; /** * 移除指定返回头 * @param name 返回头 */ removeHeader(name: string): void; /** * 以安全方式将要写入的内容创建成一个buffer对象 * @param data * @returns {Buffer} */ createBuffer(data: any): Buffer; /** * 写出内容到客户端 * @param response */ write(chunk: string | Buffer, encoding?: BufferEncoding): void; /** * 结束请求 * @param response */ end(content?: string | Buffer, encoding?: BufferEncoding): void; /** * 立即结束请求,并且设置返回内容与返回内容类型 * 注意:此前不能调用response的 write与end函数 * @param content 要返回的内容 * @param mediaType 媒体类型 * @param encoding 编码 */ fullResponse(content: string | Buffer, mediaType: MediaType, encoding?: BufferEncoding): Promise<void>; /** * 执行http重定向 * @param response */ sendRedirect(url: any, status?: number): void; getLastModifiedTime(): Date; setServletContext(context: ServletContext): void; constructor(response: ServerResponse); }