摘要:我打算繼續(xù)更新一個方法叫,這可以讓后臺自定義返回的狀態(tài)碼以及錯誤信息。例如,用戶沒有權(quán)限,的狀態(tài)碼就應(yīng)該是,而不應(yīng)該是我們自定義的了。寫在后面大家如果有更好的解決方案,希望不吝賜教。
Github傳送門 koa2-response
背景
最近做了很多node的后臺項目,寫了很多接口,但是發(fā)現(xiàn)隨著接口的慢慢增多,需要寫越來越來越多類似于下面這種代碼。
ctx.body = { data: { name: "test" }, status: { code: 0, message: success } }
寫成這樣還好,至少做到了所有接口返回的格式統(tǒng)一,如果沒有在這方面做規(guī)范,那么后臺的接口返回不統(tǒng)一,將會給前端帶來很多的問題。
而且每個接口都要寫這么一大堆的代碼。感覺是個特別麻煩的事。
所以koa2-response就這么誕生了。其實在寫這篇文章之前,我已經(jīng)在我的項目里面用了一段時間了,方便了我們的操作。
安裝
npm install koa2-response
用法
const koa = require("koa"); const router = require("koa-router")(); const app = new koa(); const response = require("koa2-response"); const code = { UNKNOWN_ERROR: [1, "Sorry, you seem to have encountered some unknown errors."] } router .get("/", (ctx, next) => { response.success(ctx, { name: "test" }) }) .get("/error_test", (ctx, next) => { response.error(ctx, code.UNKNOWN_ERROR); }) app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000);
就這樣很簡單的就可以統(tǒng)一后端的返回數(shù)據(jù),這個方法讓我在項目中節(jié)約了很多時間。這個中間件還是在持續(xù)更新中,現(xiàn)在已經(jīng)有的方法是response.success和response.error。我打算繼續(xù)更新一個方法叫response.throw,這可以讓后臺自定義返回的http狀態(tài)碼以及錯誤信息。例如,用戶沒有權(quán)限,http的狀態(tài)碼就應(yīng)該是401,而不應(yīng)該是我們自定義的code了。
寫在后面
大家如果有更好的解決方案,希望不吝賜教。
歡迎光臨 個人博客
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/110148.html
摘要:在運行這一行之后,也指向這顯然會導(dǎo)致繼承鏈的紊亂明明是用構(gòu)造函數(shù)生成的,因此我們必須手動糾正,將對象的值改為。下文都遵循這一點,即如果替換了對象,那么,下一步必然是為新的對象加上屬性,并將這個屬性指回原來的構(gòu)造函數(shù)。 express&koa 面試題目:1.express和koa的對比,兩者中間件的原理,koa捕獲異常多種情況說一下 參考:https://blog.csdn.net/sh...
摘要:在運行這一行之后,也指向這顯然會導(dǎo)致繼承鏈的紊亂明明是用構(gòu)造函數(shù)生成的,因此我們必須手動糾正,將對象的值改為。下文都遵循這一點,即如果替換了對象,那么,下一步必然是為新的對象加上屬性,并將這個屬性指回原來的構(gòu)造函數(shù)。 express&koa 面試題目:1.express和koa的對比,兩者中間件的原理,koa捕獲異常多種情況說一下 參考:https://blog.csdn.net/sh...
摘要:在運行這一行之后,也指向這顯然會導(dǎo)致繼承鏈的紊亂明明是用構(gòu)造函數(shù)生成的,因此我們必須手動糾正,將對象的值改為。下文都遵循這一點,即如果替換了對象,那么,下一步必然是為新的對象加上屬性,并將這個屬性指回原來的構(gòu)造函數(shù)。 express&koa 面試題目:1.express和koa的對比,兩者中間件的原理,koa捕獲異常多種情況說一下 參考:https://blog.csdn.net/sh...
滬江CCtalk視頻地址:https://www.cctalk.com/v/15114923883523 showImg(https://segmentfault.com/img/remote/1460000012932474?w=1606&h=968); log 日志中間件 最困難的事情就是認識自己。 在一個真實的項目中,開發(fā)只是整個投入的一小部分,版本迭代和后期維護占了極其重要的部分。項目上線...
摘要:不過永久幀的技術(shù)會導(dǎo)致主頁面的加載條始終處于狀態(tài),體驗很差。同時,規(guī)范允許服務(wù)端指定自定義事件,客戶端偵聽該事件即可。 服務(wù)端推 服務(wù)端推,指的是由服務(wù)器主動的向客戶端發(fā)送消息(響應(yīng))。在應(yīng)用層的HTTP協(xié)議實現(xiàn)中,請求-響應(yīng)是一個round trip,它的起點來自客戶端,因此在應(yīng)用層之上無法實現(xiàn)簡易的服務(wù)端推功能。當(dāng)前解決服務(wù)端推送的方案有這幾個: 客戶端長輪訓(xùn) websocket...
閱讀 1515·2021-11-23 09:51
閱讀 1786·2021-11-16 11:45
閱讀 4624·2021-10-09 09:43
閱讀 2911·2021-07-22 16:47
閱讀 1091·2019-08-27 10:55
閱讀 3608·2019-08-26 17:40
閱讀 3262·2019-08-26 11:39
閱讀 3404·2019-08-23 18:39