Size: a a a

Node.js — русскоговорящее сообщество

2019 November 25

e

el_anonimo in Node.js — русскоговорящее сообщество
ДЛя этого в бек роуте параметры в роуте с ?. Трабла в том, что max в таком случается воспринимается как current_page.
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
как оно теоретически должно работаь?
источник

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
el_anonimo
ДЛя этого в бек роуте параметры в роуте с ?. Трабла в том, что max в таком случается воспринимается как current_page.
ты значит query неправильно делаешь
источник

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
там параметры амперсандом разделяются а не вопросом
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Mike Mulukin
там параметры амперсандом разделяются а не вопросом
ты вообще не о том
источник

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
Igor Lobanov
ты вообще не о том
о том, о том
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
короче, все опциональный параметры нужно переделать на get параметры, или передавать какое-нибудь говно
/test/subs/1/null/0/10
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Mike Mulukin
о том, о том
? это к параметрам экпресса относится
источник

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
Igor Lobanov
? это к параметрам экпресса относится
"Тут можно переписать / на ?, но что по..."
источник

e

el_anonimo in Node.js — русскоговорящее сообщество
Igor Lobanov
как оно теоретически должно работаь?
На фронте на странице есть таблица, под каждым её хедером текстовый инпут для снятия параметров, которые затем подаются в импортированный в компонент экшен -> фронт роут -> далее идут на бек роут.
Экшен:
getRecordsForPage(1, nameFilter, min, max);
Фронт роут, который и есть getRecordsForPage:
const res = await apiFetch(/api/subscriptions/test/subs/${pageNumber}/${nameFilter}/${min}/${max}, {...}).
Бек роут сейчас:
router.get('/test/subs/:current_page/:name_filter?/:min?/:max?', ...).
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
На беке должно быть вот такое апи:
/test/subs/1?name_filter=test&min=0&max=10
источник

e

el_anonimo in Node.js — русскоговорящее сообщество
Может отстуствовать любой параметр. Пока придумал в экшен подавать объект с именованными полями (keys), потому что именование переменных в JS нет.
источник

EB

Eugene Butusov in Node.js — русскоговорящее сообщество
если может отсутствовать любой параметр, надо собирать кверистринг, как выше посоветовали
источник

EB

Eugene Butusov in Node.js — русскоговорящее сообщество
к тому же обычно в path указывают путь к ресурсу, а аргументы запроса уже указывают в кверистринге, фильтры в пути выглядят как минимум странно
источник

IL

Igor Lobanov in Node.js — русскоговорящее сообщество
Eugene Butusov
к тому же обычно в path указывают путь к ресурсу, а аргументы запроса уже указывают в кверистринге, фильтры в пути выглядят как минимум странно
++
источник

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
Eugene Butusov
к тому же обычно в path указывают путь к ресурсу, а аргументы запроса уже указывают в кверистринге, фильтры в пути выглядят как минимум странно
более толерантно будет сказать "не гибко"
источник

e

el_anonimo in Node.js — русскоговорящее сообщество
Ok, перепишу на ?param1=...&param2=.... Как разобрать на беке? req.query вернёт объект с именами полей?
источник

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
el_anonimo
Ok, перепишу на ?param1=...&param2=.... Как разобрать на беке? req.query вернёт объект с именами полей?
да, req.query вернет объект
источник

MM

Mike Mulukin in Node.js — русскоговорящее сообщество
el_anonimo
Ok, перепишу на ?param1=...&param2=.... Как разобрать на беке? req.query вернёт объект с именами полей?
и тебе на беке только req.params.name_filter на req.query.name_filter заменить придется. Поспрашивай а реакт-сообществах как тебе Акшон сделать чтобы он тебе кверистринг варганил с твоими параметрами и все ок будет
источник

e

el_anonimo in Node.js — русскоговорящее сообщество
На фронте в экшене роут вида
const res = await apiFetch(/api/subscriptions/test/subs?${pageNumber}&${nameFilter}&${min}&${max}, {...}) не работает.
источник