框架无关的响应接口。
由各 adapter 注入到请求对象($reply),让 registerTyped 的 handler 用统一的 reply.json()/status() 写响应,从而与具体框架解耦——同一份 handler 可被 Express / Koa / @leizm/web 三个框架复用。
$reply
reply.json()/status()
raw 是逃生舱:当需要框架特有能力(setCookie/redirect/stream/文件下载等)时, 通过 reply.raw 访问框架原生对象。类型由 ERest<T, Raw> 的 Raw 泛型驱动, 经子包 createERest() 工厂在构造时锁定。
raw
reply.raw
ERest<T, Raw>
createERest()
markSent() 是 enveloper 逃生舱:当 registerTyped handler 需要返回非 JSON 响应 (CSV/文件下载/流式)并已通过 raw 手动写完响应时,调用它告知 enveloper 跳过自动 包装。否则 enveloper 会在 handler return 后再用 successEnveloper 包一层 json, 可能覆盖已发送的响应或抛错(各框架行为不一)。
markSent()
Readonly
框架原生对象逃生舱(setCookie/redirect/stream/文件下载等)
以 JSON 写入响应体
标记响应已由 handler 手动发送(如经 raw 写 CSV/文件流),enveloper 将跳过自动包装。 仅在注册了 enveloper 且 handler 已自行写完整响应时需要调用。
以纯文本写入响应体
设置 HTTP 状态码并返回自身,支持链式调用
框架无关的响应接口。
由各 adapter 注入到请求对象(
$reply),让 registerTyped 的 handler 用统一的reply.json()/status()写响应,从而与具体框架解耦——同一份 handler 可被 Express / Koa / @leizm/web 三个框架复用。raw是逃生舱:当需要框架特有能力(setCookie/redirect/stream/文件下载等)时, 通过reply.raw访问框架原生对象。类型由ERest<T, Raw>的 Raw 泛型驱动, 经子包createERest()工厂在构造时锁定。markSent()是 enveloper 逃生舱:当 registerTyped handler 需要返回非 JSON 响应 (CSV/文件下载/流式)并已通过 raw 手动写完响应时,调用它告知 enveloper 跳过自动 包装。否则 enveloper 会在 handler return 后再用 successEnveloper 包一层 json, 可能覆盖已发送的响应或抛错(各框架行为不一)。