# 如何獲取params
express里經典用法
http://expressjs.com/en/4x/api.html#app.param
```javascript
app.get('/user/:id', function (req, res, next) {
console.log('although this matches');
next();
});
```
請求是
訪問http://127.0.0.1:3000/users/alfred
那么koa里如何使用呢?
關于路由
- express是自帶路由
- koa這貨沒有,所以,需要另外集成,koa-generator使用的是目前比較流行的koa-router(我喜歡它的是Express-style)
https://github.com/alexmingoia/koa-router
好吧
routes/users.js
```javascript
var router = require('koa-router')();
router.get('/:id', function *(next) {
console.log(this.params);
console.log(this.request.params);
this.body = 'this a users response!';
});
module.exports = router;
```
執行
```shell
npm run 2
```
訪問http://127.0.0.1:3000/users/alfred
日志
```
<-- GET /users/alfred
{ id: 'alfred' }
undefined
GET /users/alfred - 28
```
首先肯定一點,this.params是可以取到params的,這點和express路由用法類似
但是注意的是
```javascript
this.request.params != this.params
```
這說明params不是request上的方法,翻查源碼,確實是如此
https://github.com/alexmingoia/koa-router/blob/5.x/lib/router.js#L317
- Introduction
- Nodejs 4.x新特性
- classes
- typed arrays
- generators
- collections
- Set
- Map
- arrow functions
- block scoping
- template strings
- promises
- symbols
- Koa基礎
- 上下文
- koa-generator
- 安裝
- 創建項目
- 更改視圖模板引擎
- Routes
- HTTP
- Get
- 如何獲取query參數
- 如何獲取params
- Post
- 從post獲取參數
- 標準表單(Post with x-www-form-urlencoded)
- 文件上傳(Post with form-data)
- Post with raw
- 數據庫
- MySQL
- Mongo
- 流程控制
- generator/co
- es6的generator是什么?
- co = generator + promise
- async/await
- promise with bluebird
- 測試
- Mocha
- Supertest
- 部署
- 最佳實踐
- FAQ
- 如何發布本書到git pages
- 如何知道require模塊的用法
- koa中的異常處理