CF web 中間件開發(fā)指南

2019-04-02 11:28 更新

介紹

中間件的設(shè)計(jì)得益于項(xiàng)目分層設(shè)計(jì)模式, 其作用是為了將不同作用的代碼分離.

中間件設(shè)計(jì)能方便用戶更加簡(jiǎn)潔高效的管理自己的項(xiàng)目.

中間件設(shè)計(jì)方法

[httpd](https://github.com/CandyMi/core_framework/wiki/httpd)庫提供了一個(gè)```before```函數(shù), 用于在每次請(qǐng)求被用戶處理之前優(yōu)先調(diào)用.

以下為拋磚引玉, 提供了一種最簡(jiǎn)單的中間件設(shè)計(jì)示例:

  local httpd = require "httpd"
  local http = require "http"


  local app = httpd:new('httpd')


  app:before(function(content)
    if string.find(content.path, '^/admin+') then
      return http.throw(401, '<h1>驗(yàn)證失敗</h1>')
    end
    return http.ok()
  end)


  app:api('/admin/login', function(content)
    return '{"code":200,"message":"ok"}' -- json string
  end)


  app:api('/api/login', function(content)
    return '{"code":200,"message":"ok"}' -- json string
  end)


  app:listen("0.0.0.0", 8080)
  app:run()

測(cè)試

使用curl進(jìn)行測(cè)試后發(fā)現(xiàn), 第一個(gè)路由被禁止訪問, 第二個(gè)路由正確返回. :)

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)