Koa 如何获取 Params

express 里经典用法

http://expressjs.com/en/4x/api.html#app.param

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

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;

执行

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 路由用法类似

但是注意的是

this.request.params != this.params

这说明 params 不是 request 上的方法,翻查源码,确实是如此

https://github.com/alexmingoia/koa-router/blob/5.x/lib/router.js#L317

以上是 Koa 如何获取 Params 的全部内容, 来源链接: utcz.com/z/264467.html

回到顶部