首頁 >php教程 >php手册 >KoaHub平台基於Node.js開發的router路由外掛程式碼

KoaHub平台基於Node.js開發的router路由外掛程式碼

WBOY
WBOY原創
2016-10-19 10:18:161231瀏覽

KoaHub平台基於Node.js開發的Koa router路由插件程式碼資訊詳情
koa-路由器

koa 的路由器中間件。提供 RESTful 資源路由。

koa-路由器

koa 的路由器中間件[list][*]使用 app.get、app.put、app.post 等的 Express 風格路由
[*]命名 URL 參數。
[*]具有 URL 產生功能的命名路由。
[*]使用允許的方法回應 OPTIONS 請求。
[*]支援 405 方法不允許和 501 未實現。
[*]多重路由中間件.
[*]多個路由器。
[*]可嵌套路由器。
[*]ES7 非同步/等待支援 (koa-router 7.x)。 [/list]koa 2.x

請參閱 koa-router 7.x 以了解 koa 2.x 和 async/await 支援。

安裝

使用 npm 安裝:npm 安裝 koa-routerAPI 參考[list][*]koa-router
[*]路由器⏏
[*]新路由器([opts])
[*]實例
[*].get|put|post|patch|delete ⇒ 路由器
[*].param(param, 中介軟體) ⇒ 路由器
[*].use([路徑], 中介軟體, [...]) ⇒ 路由器
[*].routes ⇒ 功能
[*].allowedMethods([選項]) ⇒ 函數
[*].redirect(來源、目的地、代碼) ⇒ 路由器
[*].route(name) ⇒ 圖層 |假
[*].url(name, 參數) ⇒ 字串 |錯誤
[*]靜電
[*].url(path, params) ⇒ String[/list]路由器

Kind:導出類別

新路由器([opts])

建立一個新路由器。

[table=50%]

參數 型描述 [opts] 物件 .n [/table ]基本用法範例:var app = require('koa')(); var router = require('koa-router')();   router.get('/', 函數 *(next) {...});   應用程式   .use(router.routes())   .use(router.allowedMethods());router.get|put|post|patch|delete ⇒ Router <br> 建立 router.verb() 方法,其中 verb 是 HTTP 動詞之一,例如 router.get() 或 router.post()。 <br> <br> 使用 router.verb() 將 URL 模式與回呼函數或控制器操作相匹配,其中 verb 是 HTTP 動詞之一,例如 router.get() 或 router.post()。 <br>router<br>   .get('/', 函數*(下一個){<br>     this.body = '你好世界! ';<br>   })   .post('/users', 函數 *(下一個) {
    // ... 
  })
  .put('/users/:id', 函數 *(下一個) {
    // ...    })<br>   .del('/users/:id', 函數 *(下一個) {<br>     // ... <br>   });<br>路由路徑將使用 path-to-regexp 轉換為正規表示式。 <br> <br> 符合請求時不會考慮查詢字串。 <br> <br> <br>命名路線<br><br> <br> 路線可以選擇有名稱。這允許在開發過程中產生 URL 並輕鬆重命名 URL。 router.get('user', '/users/:id', function *(next) {
 // ... 
});
 
router.url('用戶', 3); //=> 「/users/3」多個中間件

可以給出多個中間件:router.get(<br>   '/users/:id',<br>   函數*(下一個){<br>     this.user = yield User.findOne(this.params.id);<br>     產生下一個;<br>   },   函數*(下一個){
    console.log(this.user);
    //=> { id:17,名稱:「亞歷克斯」}    }<br> );<br><br>嵌套路由器<br><br> <br> 支援嵌套路由器:<br>var forums = new Router();<br> var posts = new Router();<br>  <br> posts.get('/', 函數 *(next) {...}); posts.get('/:pid', 函數 *(next) {...}); forums.use('/forums/:fid/posts', posts.routes(), posts.allowedMethods());  
// 回覆「/forums/123/posts」和「/forums/123/posts/123」
app.use(forums.routes());路由器前綴

路由路徑可以在路由器層級新增前綴:var router = new Router({<br>   前綴:'/users'<br> });<br>  <br> router.get('/', ...); // 回應「/users」<br> router.get('/:id', ...); // 回應「/users/:id」URL 參數

命名路由參數被捕獲並添加到 ctx.params.router.get('/:category/:title', function *(next) {<br>   console.log(this.params);<br>   //=> { 類別:'程式設計',標題:'如何使用節點'} <br> });Kind:Router
的實例屬性
[table=50%] 參數 型 描述 路徑 字串 回調函數 路由回呼[/table]router.routes ⇒ 函數 返迴路由器中間件,此中間件調度與請求匹配的路由。 Kind:Router的實例屬性 router.use([路徑], 中介軟體, [...]) ⇒ 路由器 在路由回調之前使用給定的中間件。
僅當任何路由匹配時才運行。如果給定路徑,中間件將為包含該路徑的任何路由運行。

種類:Router
的實例方法
[table=50%]

Param





[路徑]
字串函數 範例 router.use(session(), 授權());   // 僅使用給定路徑的中間件 router.use('/users', userAuth());   app.use(router.routes());router.prefix(prefix) ⇒ 路由器 為已初始化的 Router 實例設定路徑前綴。 Kind:Router的實例方法 [table=50%]參數<br>型<br><br><br><br>前綴字串
[/table]
範例

router.prefix([/table]範例_5. ] ) ⇒ 函數

傳回單獨的中間件,用於回應帶有包含允許方法的Allow標頭的OPTIONS請求,並根據情況回應405 Method Not allowed和501 Not Implemented。 Kind:Router的實例方法 [table=50%]Param Type 描述
[options]

Object
拋出錯誤而不是設定狀態和標題


[options.notImplemented] Function拋出回傳值來取代預設的NotImplemented 錯誤 [options. Allowed 錯誤 [/table]範例 var app = koa(); var router = router();   app.use(router.routes()); app.use(router.allowedMethods());   例:Boom var app = koa(); var router = router(); var Boom = require('boom');   app.use(router.routes()); app.use(router.allowedMethods({   拋出:真實,   未實作:()=> 新的 Boom.notImplemented(),   方法不允許:()=> 新的 Boom.methodNotAllowed() })); router.redirect(來源、目的地、程式碼) ⇒ 路由器 使用可選的 30x 狀態代碼將來源重新導向到目標 URL。 來源和目的地都可以是路由名稱。 router.redirect('/login', 'sign-in');這相當於:router.all('/login', function *() {   this.redirect('/登入');   this.status = 301;<br> });<br>Kind:Router的實例方法<br> <br>[table=50%]<tr> <td> Param</td> <td> 類型</td> <td>Description </td> </tr> <tr> <td>source</td> <td>String</td> <td>URL orroute name.</td> </tr>String<tr> route name.<td></td> <td></td>code <td></td>Number</tr> <tr>HTTP status code (default: 301).<td></td>[/table]<td>router.route(name) ⇒ Layer | false</td> <td> </td> Lookup route with given name.</tr> <b> </b>Kind<br>: instance method of Router<br> <br> Param Type<br> name String<b> </b> router.url(name, params) ⇒ String | Error<br> <br> Generate URL for route. Takes the route name and a map of named<br> <br> wemall 開源微商城 ,微信商城,商城源碼,三級分銷,微生鮮,微水果,微外賣,微訂餐---專業的o2o系統<br> <br> wemall網址:http://www.wemallshop.com<br> <br> <br> 程式碼來源:http://js.koahub.com/home/feature/koa-jwt<br> <br> <br><br><br><br> <img src="http://images2015.cnblogs.com/blog/993200/201610/993200-20161017174927623-1398173112.jpg" alt="KoaHub平台基於Node.js開發的router路由外掛程式碼" >
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn