Koa路由器:如何获取查询字符串参数?

Alo*_*lon 25 javascript node.js query-string koa koa-router

我正在使用koa-router.

如何获取请求的查询字符串参数?

这是我设法写的最好的:

import koaRouter from 'koa-router';

const router = koaRouter({ prefix: '/courses' });

router.get('/', async (ctx) => {
        console.log(ctx.qs["lecturer"]);
    });
Run Code Online (Sandbox Code Playgroud)

但是qs未定义

任何帮助将深表感谢!

Cod*_*ike 40

根据文档,应该有一个ctx.request.query表示为对象的查询字符串项.

更新改变了这个......

__PRE__

  • ctx.request.query 未定义,尽管 ctx.request.url 是 '/api/courses?lecturer=John_Smith' (2认同)
  • ctx.params 是现在的样子,而不是查询。 (2认同)
  • @JosephAstrahan 您将需要重新访问您的编辑和评论。这是相当具有误导性的评论和编辑。@Cory Robinson 是对的。它应该只是来自`koa`的`ctx.query`,其中`koa-router`只是与请求一起传递[如此处提到](https://koajs.com/#request)。如果 OP 只要求“url 参数”,那么您是对的,但问题是关于“查询字符串”参数。不是一回事。 (2认同)

Cor*_*son 12

您可以使用ctx.query(或长期使用ctx.request.query

app.use( (ctx) => console.log(ctx.query) )