午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

小程序模板網

小程序后端 egg 框架開發記錄

發布時(shi)間:2020-05-22 09:45 所屬欄目:小程序開發教程

內置對象

Request & Response

可以在 Context 的實例(li)上獲取到當前請求的 Request( ctx.request ) 和 Response( ctx.response ) 實例(li)。

  • ctx.response.body= 和 ctx.body= 是等價的。
  • [!] 需要注意的是,獲取 POST 的 body 應該使用 ctx.request.body ,而不是 ctx.body

Controller

框架(jia)提供(gong)了一個(ge) Controller 基類,并推薦所有(you)的 Controller 都(dou)繼承于該基類實(shi)現。這個(ge) Controller 基類有(you)下列屬性:

  • ctx - 當前請求的 Context 實例。
  • app - 應用的 Application 實例。
  • config - 應用的 配置 。
  • service - 應用所有的 service 。
  • logger - 為當前 controller 封裝的 logger 對象。

Service

框架提供了(le)一個 Service 基類(lei),并推薦所(suo)有的 Service 都繼承于(yu)該基類(lei)實現。 Service 基類(lei)的屬(shu)性和(he) Controller 基類(lei)屬(shu)性一致,訪(fang)問方式也類(lei)似

中間件

編寫中間件

一個(ge)(ge)(ge)中間件是(shi)一個(ge)(ge)(ge)放(fang)置在(zai) app/middleware 目錄下(xia)的單獨(du)文件,它需要 exports 一個(ge)(ge)(ge)普通的 function,接(jie)受兩個(ge)(ge)(ge)參(can)數:

  • options: 中間件的配置項,框架會將 app.config[${middlewareName}] 傳遞進來。
  • app: 當前應用 Application 的實例。
// app/middleware/error_handler.js
module.exports = () => {
  return async function errorHandler(ctx, next) {
    try {
      await next();
    } catch (err) {
      // 所有的異常都在 app 上觸發一個 error 事件,框架會記錄一條錯誤日志
      ctx.app.emit('error', err, ctx);

      const status = err.status || 500;
      // 生產環境時 500 錯誤的詳細錯誤內容不返回給客戶端,因為可能包含敏感信息
      const error = status === 500 && ctx.app.config.env === 'prod'
        ? 'Internal Server Error'
        : err.message;
      // 從 error 對象上讀出各個屬性,設置到響應中

      if (status === 422) {
        ctx.body = { 
          code: ctx.ERROR_CODE, 
          data: error,
          msg: '參數錯誤'+status
         };
      }
      if (status === 500) {
        ctx.body = { 
          code: 500, 
          data: '',
          msg: '服務端錯誤-----'+error
         };
      }
      ctx.status = 200;
    }
  };
};復制代碼

使用

在(zai)應用中(zhong)使(shi)用中(zhong)間件

在應用中,我們(men)可以完(wan)全通過配置來(lai)加載(zai)自定義的中間件(jian),并決定它們(men)的順序。

如果(guo)我們需要加載上面(mian)的 gzip 中(zhong)間(jian)件(jian),在 config.default.js 中(zhong)加入下面(mian)的配置(zhi)就完(wan)成了中(zhong)間(jian)件(jian)的開(kai)啟和配置(zhi):

// 加載 errorHandler 中間件
  config.middleware = ['errorHandler']復制代碼


易優(you)小(xiao)程序(企業版)+靈活api+前(qian)后代碼開源 碼云倉庫:
本文地址://www.jinyoudianli.com/wxmini/doc/course/25253.html 復制鏈接 如需(xu)定制請(qing)聯系(xi)易優客服咨詢(xun):

工作日 8:30-12:00 14:30-18:00
周六及部(bu)分節假(jia)日提供值(zhi)班服務(wu)

易小優
轉人工 ×