Маршрутизатор Koa: как получить параметры строки запроса?

Я использую коа-роутер.

Как я могу получить параметры строки запроса запроса?

Это лучшее, что мне удалось написать:

import koaRouter from 'koa-router';

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

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

но qs не определено

Любая помощь будет глубоко оценена!


person Alon    schedule 06.04.2017    source источник


Ответы (2)


Согласно документам, должно быть ctx.request.query, то есть элементы строки запроса, представленные в виде объекта.

person CodingWithSpike    schedule 06.04.2017
comment
ctx.request.query не определен, хотя ctx.request.url — это '/api/courses?lecturer=John_Smith' - person Alon; 06.04.2017
comment
@ Алон, как ты подключаешь роутер к приложению? - person robertklep; 09.04.2017
comment
Я не знаю, что было изменено, но вдруг ctx.request.query работает - person Alon; 09.04.2017
comment
ctx.params - это то, что теперь вместо запроса. - person Joseph Astrahan; 22.09.2018
comment
@JosephAstrahan, вам нужно будет вернуться к своему редактированию и комментарию. Это довольно вводящий в заблуждение комментарий и редактировать там. @Кори Робинсон прав. Это должен быть просто ctx.query, который исходит из koa, где koa-router просто передается вместе с запросом, как указано здесь. Если бы ОП запросил только параметры URL-адреса, вы были бы правы, но вопрос касается параметров строки запроса. Не то же самое. - person shriek; 24.06.2019
comment
Этот ответ неверен. Правильное использование — ctx.request.query (или псевдоним ctx.query) на момент написания этой статьи. - person Martin Wickman; 11.09.2019
comment
Я отменил редактирование, которое добавило неверную информацию и пример кода. - person CodingWithSpike; 13.09.2019
comment
Как получить параметры URL вместо запроса? - person sumit_suthar; 13.02.2020

Вы можете использовать ctx.query (или расшифровку ctx.request.query)

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

person Cory Robinson    schedule 05.09.2018
comment
Интересно, что мой WebStorm не показывает такое свойство ctx.query при проверке ctx в отладчике, но при прямом доступе работает. - person Dzenly; 25.12.2018
comment
@dzenly это потому, что это на самом деле ярлык (геттер), фактический путь ctx.request.query - person Cory Robinson; 27.12.2018