Github傳送門 koa2-response
背景
最近做了很多node的後臺專案,寫了很多介面,但是發現隨著介面的慢慢增多,需要寫越來越來越多類似於下面這種程式碼。
ctx.body = {
data: {
name: `test`
},
status: {
code: 0,
message: success
}
}
寫成這樣還好,至少做到了所有介面返回的格式統一,如果沒有在這方面做規範,那麼後臺的介面返回不統一,將會給前端帶來很多的問題。
而且每個介面都要寫這麼一大堆的程式碼。感覺是個特別麻煩的事。
所以koa2-response就這麼誕生了。其實在寫這篇文章之前,我已經在我的專案裡面用了一段時間了,方便了我們的操作。
安裝
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);
就這樣很簡單的就可以統一後端的返回資料,這個方法讓我在專案中節約了很多時間。這個中介軟體還是在持續更新中,現在已經有的方法是response.success和response.error。我打算繼續更新一個方法叫response.throw,這可以讓後臺自定義返回的http狀態碼以及錯誤資訊。例如,使用者沒有許可權,http的狀態碼就應該是401,而不應該是我們自定義的code了。
寫在後面
大家如果有更好的解決方案,希望不吝賜教。
歡迎光臨 個人部落格