Javascript 膝关节炎路由器:如何获取查询字符串参数?

Javascript 膝关节炎路由器:如何获取查询字符串参数?,javascript,node.js,query-string,koa,koa-router,Javascript,Node.js,Query String,Koa,Koa Router,我用的是koa路由器 如何获取请求的查询字符串参数 这是我写得最好的一篇: import koaRouter from 'koa-router'; const router = koaRouter({ prefix: '/courses' }); router.get('/', async (ctx) => { console.log(ctx.qs["lecturer"]); }); 但是qs未定义 我们将非常感谢您的帮助 根据文档,应该有一个ctx.requ

我用的是koa路由器

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

这是我写得最好的一篇:

import koaRouter from 'koa-router';

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

router.get('/', async (ctx) => {
        console.log(ctx.qs["lecturer"]);
    });
但是
qs
未定义


我们将非常感谢您的帮助

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

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


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

ctx.request.query未定义,尽管ctx.request.url是'/api/courses?讲师=John_Smith'@Alon您如何将路由器安装到应用程序上?我不知道发生了什么变化,但突然间ctx.request.query开始工作了。ctx.params就是现在的样子,而不是query。@JosephAstrahan您需要重新查看您的编辑和注释。这是相当误导性的评论和编辑@科里·罗宾逊是对的。它应该是
ctx.query
,它来自
koa
,其中
koa路由器
只是随请求一起传递。如果OP只要求“url参数”,那么您是对的,但问题是关于“查询字符串”参数。不一样。有趣的是,我的WebStorm在调试程序中的ctx检查中没有显示这样的属性“ctx.query”,但在直接访问中它确实起作用。@dzenly这是因为它实际上是一个快捷方式(getter),实际路径是
ctx.request.query