Skip to content

NovaRequest ​

ts
import type { NovaRequest, RequestContext, BodyReadOptions } from "nova-http";

处理器由框架传入请求对象。手动构造需从 nova-http/core 导入运行时类,参见消息契约。

路径与元数据 ​

属性类型行为
methodstringHTTP 方法
rawTargetstring原始请求目标,挂载视图仍保留
pathstring当前视图路径,包含 query
pathnamestring当前视图路径,不含 query
httpVersionstring协议版本;HTTP/1 适配器使用 1.0 或 1.1
paramsRecord<string, string>匹配路由时注入
queryURLSearchParams惰性解析,支持 getAll
cookiesRecord<string, string>无原型对象,值不做 URI 解码
ipstring适配器按代理信任策略计算
peerConnectionInfo与传输对象分离的地址信息
connectionConnectionIntentclose、upgrade、CONNECT 意图
contextRequestContext可声明合并的请求共享状态
signalAbortSignal由协调层持有取消权限

path 不做 URI 解码或点路径段消除。挂载子应用的路径、参数及惰性缓存独立;body、headers、trailers、context 与 signal 共享。

字段与媒体类型 ​

成员类型 / 返回值行为
headersHeaderBlock保留字段顺序与重复项
trailersHeaderBlockbody 完成后的 trailer,独立于 headers
getHeader(name)string | undefined忽略大小写,首个字段值
isJsonbooleanapplication/json 或 application/*+json
isFormbooleanapplication/x-www-form-urlencoded

媒体类型比较忽略大小写与参数,不说明内容已经校验。HeaderBlock 的 getAll() 等接口见消息契约。

请求体 ​

ts
req.buffer(options?: BodyReadOptions): Promise<Buffer>;
req.text(encoding?: BufferEncoding, options?: BodyReadOptions): Promise<string>;
req.json<T = unknown>(options?: BodyReadOptions): Promise<T>;

body: IncomingBody 是单次消费的 Readable;这三个便捷方法会消费并聚合它,默认不缓存结果。encoding 默认为 utf8,BodyReadOptions.maxSize 默认为 Number.MAX_SAFE_INTEGER,连接层 maxBodySize 仍独立生效。

超过读取上限会销毁 body 并抛 RangeError;JSON 无法解析时抛语法异常。泛型不执行运行时校验。bodyBytesReceived 反映当前已接收字节,不是预先确定的完整大小。

使用建议见请求体指南。

Nova · Node.js HTTP framework