成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Koa v2.x 中文文檔 響應(yīng)(Response)

khlbat / 1771人閱讀

摘要:每當(dāng)流被設(shè)置為響應(yīng)主體時,作為偵聽器自動添加到事件中以捕獲任何錯誤。不區(qū)分大小寫獲取響應(yīng)標(biāo)頭字段值。例如這是一個中間件,可以削減除流之外的所有響應(yīng)。檢查是否已經(jīng)發(fā)送了一個響應(yīng)頭。設(shè)置包含包裹的響應(yīng),請注意,沒有相應(yīng)的。

此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star.

響應(yīng)(Response)

Koa Response 對象是在 node 的 vanilla 響應(yīng)對象之上的抽象,提供了諸多對 HTTP 服務(wù)器開發(fā)有用的功能。

API response.header

響應(yīng)標(biāo)頭對象。

response.headers

響應(yīng)標(biāo)頭對象。別名是 response.header

response.socket

請求套接字。

response.status

獲取響應(yīng)狀態(tài)。默認(rèn)情況下,response.status 設(shè)置為 404 而不是像 node 的 res.statusCode 那樣默認(rèn)為 200。

response.status=

通過數(shù)字代碼設(shè)置響應(yīng)狀態(tài):

100 "continue"

101 "switching protocols"

102 "processing"

200 "ok"

201 "created"

202 "accepted"

203 "non-authoritative information"

204 "no content"

205 "reset content"

206 "partial content"

207 "multi-status"

208 "already reported"

226 "im used"

300 "multiple choices"

301 "moved permanently"

302 "found"

303 "see other"

304 "not modified"

305 "use proxy"

307 "temporary redirect"

308 "permanent redirect"

400 "bad request"

401 "unauthorized"

402 "payment required"

403 "forbidden"

404 "not found"

405 "method not allowed"

406 "not acceptable"

407 "proxy authentication required"

408 "request timeout"

409 "conflict"

410 "gone"

411 "length required"

412 "precondition failed"

413 "payload too large"

414 "uri too long"

415 "unsupported media type"

416 "range not satisfiable"

417 "expectation failed"

418 "I"m a teapot"

422 "unprocessable entity"

423 "locked"

424 "failed dependency"

426 "upgrade required"

428 "precondition required"

429 "too many requests"

431 "request header fields too large"

500 "internal server error"

501 "not implemented"

502 "bad gateway"

503 "service unavailable"

504 "gateway timeout"

505 "http version not supported"

506 "variant also negotiates"

507 "insufficient storage"

508 "loop detected"

510 "not extended"

511 "network authentication required"

__注意__: 不用太在意記住這些字符串, 如果你寫錯了,可以查閱這個列表隨時更正.

response.message

獲取響應(yīng)的狀態(tài)消息. 默認(rèn)情況下, response.messageresponse.status 關(guān)聯(lián).

response.message=

將響應(yīng)的狀態(tài)消息設(shè)置為給定值。

response.length=

將響應(yīng)的 Content-Length 設(shè)置為給定值。

response.length

以數(shù)字返回響應(yīng)的 Content-Length,或者從ctx.body推導(dǎo)出來,或者undefined。

response.body

獲取響應(yīng)主體。

response.body=

將響應(yīng)體設(shè)置為以下之一:

string 寫入

Buffer 寫入

Stream 管道

Object || Array JSON-字符串化

null 無內(nèi)容響應(yīng)

如果 response.status 未被設(shè)置, Koa 將會自動設(shè)置狀態(tài)為 200204。

String

Content-Type 默認(rèn)為 text/htmltext/plain, 同時默認(rèn)字符集是 utf-8。Content-Length 字段也是如此。

Buffer

Content-Type 默認(rèn)為 application/octet-stream, 并且 Content-Length 字段也是如此。

Stream

Content-Type 默認(rèn)為 application/octet-stream。

每當(dāng)流被設(shè)置為響應(yīng)主體時,.onerror 作為偵聽器自動添加到 error 事件中以捕獲任何錯誤。此外,每當(dāng)請求關(guān)閉(甚至過早)時,流都將被銷毀。如果你不想要這兩個功能,請勿直接將流設(shè)為主體。例如,當(dāng)將主體設(shè)置為代理中的 HTTP 流時,你可能不想要這樣做,因為它會破壞底層連接。

參閱: https://github.com/koajs/koa/... 獲取更多信息。

以下是流錯誤處理的示例,而不會自動破壞流:

const PassThrough = require("stream").PassThrough;

app.use(async ctx => {
  ctx.body = someHTTPStream.on("error", ctx.onerror).pipe(PassThrough());
});
Object

Content-Type 默認(rèn)為 application/json. 這包括普通的對象 { foo: "bar" } 和數(shù)組 ["foo", "bar"]

response.get(field)

不區(qū)分大小寫獲取響應(yīng)標(biāo)頭字段值 field。

const etag = ctx.response.get("ETag");
response.set(field, value)

設(shè)置響應(yīng)標(biāo)頭 fieldvalue:

ctx.set("Cache-Control", "no-cache");
response.append(field, value)

用值 val 附加額外的標(biāo)頭 field。

ctx.append("Link", "");
response.set(fields)

用一個對象設(shè)置多個響應(yīng)標(biāo)頭fields:

ctx.set({
  "Etag": "1234",
  "Last-Modified": date
});
response.remove(field)

刪除標(biāo)頭 field。

response.type

獲取響應(yīng) Content-Type 不含參數(shù) "charset"。

const ct = ctx.type;
// => "image/png"
response.type=

設(shè)置響應(yīng) Content-Type 通過 mime 字符串或文件擴(kuò)展名。

ctx.type = "text/plain; charset=utf-8";
ctx.type = "image/png";
ctx.type = ".png";
ctx.type = "png";

注意: 在適當(dāng)?shù)那闆r下為你選擇 charset, 比如 response.type = "html" 將默認(rèn)是 "utf-8". 如果你想覆蓋 charset, 使用 ctx.set("Content-Type", "text/html") 將響應(yīng)頭字段設(shè)置為直接值。

response.is(types...)

非常類似 ctx.request.is(). 檢查響應(yīng)類型是否是所提供的類型之一。這對于創(chuàng)建操縱響應(yīng)的中間件特別有用。

例如, 這是一個中間件,可以削減除流之外的所有HTML響應(yīng)。

const minify = require("html-minifier");

app.use(async (ctx, next) => {
  await next();

  if (!ctx.response.is("html")) return;

  let body = ctx.body;
  if (!body || body.pipe) return;

  if (Buffer.isBuffer(body)) body = body.toString();
  ctx.body = minify(body);
});
response.redirect(url, [alt])

執(zhí)行 [302] 重定向到 url.

字符串 “back” 是特別提供Referrer支持的,當(dāng)Referrer不存在時,使用 alt 或“/”。

ctx.redirect("back");
ctx.redirect("back", "/index.html");
ctx.redirect("/login");
ctx.redirect("http://google.com");

要更改 “302” 的默認(rèn)狀態(tài),只需在該調(diào)用之前或之后分配狀態(tài)。要變更主體請在此調(diào)用之后:

ctx.status = 301;
ctx.redirect("/cart");
ctx.body = "Redirecting to shopping cart";
response.attachment([filename])

Content-Disposition 設(shè)置為 “附件” 以指示客戶端提示下載。(可選)指定下載的 filename。

response.headerSent

檢查是否已經(jīng)發(fā)送了一個響應(yīng)頭。 用于查看客戶端是否可能會收到錯誤通知。

response.lastModified

Last-Modified 標(biāo)頭返回為 Date, 如果存在。

response.lastModified=

Last-Modified 標(biāo)頭設(shè)置為適當(dāng)?shù)?UTC 字符串。您可以將其設(shè)置為 Date 或日期字符串。

ctx.response.lastModified = new Date();
response.etag=

設(shè)置包含 " 包裹的 ETag 響應(yīng),
請注意,沒有相應(yīng)的 response.etag getter。

ctx.response.etag = crypto.createHash("md5").update(ctx.body).digest("hex");
response.vary(field)

field 上變化。

response.flushHeaders()

刷新任何設(shè)置的標(biāo)頭,并開始主體。

如果這篇文章對您有幫助, 感謝 下方點贊 或 Star GitHub: koa-docs-Zh-CN 支持, 謝謝.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89474.html

相關(guān)文章

  • Koa v2.x 中文文檔

    摘要:的對象提供了用于處理響應(yīng)的方法,該響應(yīng)委托給。應(yīng)用對象是與的服務(wù)器和處理中間件注冊的接口,從發(fā)送到中間件,默認(rèn)錯誤處理,以及上下文,請求和響應(yīng)對象的配置。 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. showImg(https://segmentfault.com/img/bVNQYf...

    Cobub 評論0 收藏0
  • Koa v2.x 中文文檔 使用指南

    摘要:當(dāng)中間件運行時,它必須手動調(diào)用來運行下游中間件。例如,這個中間件從讀取文件名,然后在將給指定合并結(jié)果之前并行讀取每個文件的內(nèi)容。當(dāng)你無法控制中間件的名稱時,這很有用。 指南 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. 本指南涵蓋的 Koa 主題不與 API 直接相關(guān),例如編寫中間件的最...

    anquan 評論0 收藏0
  • Koa v2.x 中文文檔 上下文(Context)

    摘要:方法拋出一個屬性默認(rèn)為的錯誤,這將允許做出適當(dāng)?shù)仨憫?yīng)。這用于修飾其人機(jī)友好型錯誤并向上游的請求者報告非常有用。請注意,不支持使用此功能。這可能會破壞中間件和本身的預(yù)期功能。 上下文(Context) 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. Koa Context 將 node 的 ...

    Arno 評論0 收藏0
  • Koa v2.x 中文文檔 API

    此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. 相關(guān) API 上下文(Context) 請求(Request) 響應(yīng)(Response) 安裝 Koa 依賴 node v7.6.0 或 ES2015及更高版本和 async 方法支持. 你可以使用自己喜歡的版本管理器快速安裝支持的 node 版本:...

    mikasa 評論0 收藏0
  • Koa v2.x 中文文檔 常見問題

    摘要:常見問題此系列文章的應(yīng)用示例已發(fā)布于可以幫助改進(jìn)或關(guān)注更新歡迎替代它更像是,但是很多的好東西被轉(zhuǎn)移到的中間件級別,以幫助形成更強(qiáng)大的基礎(chǔ)。這使得中間件對于整個堆棧而言不僅僅是最終應(yīng)用程序代碼,而且更易于書寫,并更不容易出錯。 常見問題 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進(jìn)或 Star 關(guān)注更新. 歡迎 Star. Koa...

    Paul_King 評論0 收藏0

發(fā)表評論

0條評論

khlbat

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<