W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
中間件的設(shè)計(jì)得益于項(xiàng)目分層設(shè)計(jì)模式, 其作用是為了將不同作用的代碼分離.
中間件設(shè)計(jì)能方便用戶更加簡(jiǎn)潔高效的管理自己的項(xiàng)目.
[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()
使用curl進(jìn)行測(cè)試后發(fā)現(xiàn), 第一個(gè)路由被禁止訪問, 第二個(gè)路由正確返回. :)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: