Koa 如何获取 Params

发布于 2022-01-25 22:02:18 字数 1598 浏览 1229 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文