亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Koa v2.x 中文文檔 上下文(Context)

Arno / 876人閱讀

摘要:方法拋出一個屬性默認為的錯誤,這將允許做出適當(dāng)?shù)仨憫?yīng)。這用于修飾其人機友好型錯誤并向上游的請求者報告非常有用。請注意,不支持使用此功能。這可能會破壞中間件和本身的預(yù)期功能。

上下文(Context)

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

Koa Context 將 node 的 requestresponse 對象封裝到單個對象中,為編寫 Web 應(yīng)用程序和 API 提供了許多有用的方法。
這些操作在 HTTP 服務(wù)器開發(fā)中頻繁使用,它們被添加到此級別而不是更高級別的框架,這將強制中間件重新實現(xiàn)此通用功能。

每個 請求都將創(chuàng)建一個 Context,并在中間件中作為接收器引用,或者 ctx 標識符,如以下代碼片段所示:

app.use(async ctx => {
  ctx; // 這是 Context
  ctx.request; // 這是 koa Request
  ctx.response; // 這是 koa Response
});

為方便起見許多上下文的訪問器和方法直接委托給它們的 ctx.request ctx.response ,不然的話它們是相同的。
例如 ctx.typectx.length 委托給 response 對象,ctx.pathctx.method 委托給 request。

API

Context 具體方法和訪問器.

ctx.req

Node 的 request 對象.

ctx.res

Node 的 response 對象.

繞過 Koa 的 response 處理是 __不被支持的__. 應(yīng)避免使用以下 node 屬性:

res.statusCode

res.writeHead()

res.write()

res.end()

ctx.request

koa 的 Request 對象.

ctx.response

koa 的 Response 對象.

ctx.state

推薦的命名空間,用于通過中間件傳遞信息和你的前端視圖。

ctx.state.user = await User.find(id);
ctx.app

應(yīng)用程序?qū)嵗?/p> ctx.cookies.get(name, [options])

通過 options 獲取 cookie name:

signed 所請求的cookie應(yīng)該被簽名

koa 使用 cookies 模塊,其中只需傳遞參數(shù)。

ctx.cookies.set(name, value, [options])

通過 options 設(shè)置 cookie namevalue :

maxAge 一個數(shù)字表示從 Date.now() 得到的毫秒數(shù)

signed cookie 簽名值

expires cookie 過期的 Date

path cookie 路徑, 默認是"/"

domain cookie 域名

secure 安全 cookie

httpOnly 服務(wù)器可訪問 cookie, 默認是 true

overwrite 一個布爾值,表示是否覆蓋以前設(shè)置的同名的 cookie (默認是 __false__). 如果是 true, 在同一個請求中設(shè)置相同名稱的所有 Cookie(不管路徑或域)是否在設(shè)置此Cookie 時從 Set-Cookie 標頭中過濾掉。

koa 使用傳遞簡單參數(shù)的 cookies 模塊。

ctx.throw([status], [msg], [properties])

Helper 方法拋出一個 .status 屬性默認為 500 的錯誤,這將允許 Koa 做出適當(dāng)?shù)仨憫?yīng)。

允許以下組合:

ctx.throw(400);
ctx.throw(400, "name required");
ctx.throw(400, "name required", { user: user });

例如 ctx.throw(400, "name required") 等效于:

const err = new Error("name required");
err.status = 400;
err.expose = true;
throw err;

請注意,這些是用戶級錯誤,并用 err.expose 標記,這意味著消息適用于客戶端響應(yīng),這通常不是錯誤消息的內(nèi)容,因為您不想泄漏故障詳細信息。

你可以根據(jù)需要將 properties 對象傳遞到錯誤中,對于裝載上傳給請求者的機器友好的錯誤是有用的。這用于修飾其人機友好型錯誤并向上游的請求者報告非常有用。

ctx.throw(401, "access_denied", { user: user });

koa 使用 http-errors 來創(chuàng)建錯誤。

ctx.assert(value, [status], [msg], [properties])

當(dāng) !value 時,Helper 方法拋出類似于 .throw() 的錯誤。這與 node 的 assert() 方法類似.

ctx.assert(ctx.state.user, 401, "User not found. Please login!");

koa 使用 http-assert 作為斷言。

ctx.respond

為了繞過 Koa 的內(nèi)置 response 處理,你可以顯式設(shè)置 ctx.respond = false;。 如果您想要寫入原始的 res 對象而不是讓 Koa 處理你的 response,請使用此參數(shù)。

請注意,Koa 支持使用此功能。這可能會破壞 Koa 中間件和 Koa 本身的預(yù)期功能。使用這個屬性被認為是一個 hack,只是便于那些希望在 Koa 中使用傳統(tǒng)的 fn(req, res) 功能和中間件的人。

Request 別名

以下訪問器和 Request 別名等效:

ctx.header

ctx.headers

ctx.method

ctx.method=

ctx.url

ctx.url=

ctx.originalUrl

ctx.origin

ctx.href

ctx.path

ctx.path=

ctx.query

ctx.query=

ctx.querystring

ctx.querystring=

ctx.host

ctx.hostname

ctx.fresh

ctx.stale

ctx.socket

ctx.protocol

ctx.secure

ctx.ip

ctx.ips

ctx.subdomains

ctx.is()

ctx.accepts()

ctx.acceptsEncodings()

ctx.acceptsCharsets()

ctx.acceptsLanguages()

ctx.get()

Response 別名

以下訪問器和 Response 別名等效:

ctx.body

ctx.body=

ctx.status

ctx.status=

ctx.message

ctx.message=

ctx.length=

ctx.length

ctx.type=

ctx.type

ctx.headerSent

ctx.redirect()

ctx.attachment()

ctx.set()

ctx.append()

ctx.remove()

ctx.lastModified=

ctx.etag=

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

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

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

相關(guān)文章

  • Koa v2.x 中文文檔

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

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

    此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 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 中文文檔Koa v1.x 遷移到 v2.x

    摘要:一個遷移方式是逐個更新它們。刪除特定的日志記錄行為對于環(huán)境的顯式檢查從錯誤處理中刪除。直接或它不再使用并已廢棄。支持仍然支持分支,但應(yīng)該不會得到功能性更新。除了此遷移指南外,文檔將針對最新版本。 從 Koa v1.x 遷移到 v2.x 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關(guān)注更新. 歡迎 Star. 新的中...

    fancyLuo 評論0 收藏0
  • Koa v2.x 中文文檔 Koa 對比 Express

    摘要:使用承諾和異步功能來擺脫回調(diào)地獄的應(yīng)用程序,并簡化錯誤處理。它暴露了自己的和對象,而不是的和對象。因此,可被視為的模塊的抽象,其中是的應(yīng)用程序框架。這使得中間件對于整個堆棧而言不僅僅是最終應(yīng)用程序代碼,而且更易于書寫,并更不容易出錯。 Koa 與 Express 此系列文章的應(yīng)用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關(guān)注更新...

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

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

    Paul_King 評論0 收藏0

發(fā)表評論

0條評論

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