#architecture #nestjs
Вопрос с собеседований: "Чему равно id во время выполнения такого запроса:
?id=1&id=2"Какой ответ дадите вы?
- будет ошибка, нельзя использовать два раза один параметр
- 1, потому что first win
- 2, потому что last win
- [1, 2]
В списке нет правильного ответа. Согласно спецификации это должен быть массив, но массив строк, а не чисел. Приведение типов это не часть парсинга строки.
Для передачи массива параметров в query есть такие варианты:
1️⃣
?foo=bar&foo=qux2️⃣
?foo[]=bar&foo[]=qux3️⃣
?foo%5B%5D=bar&foo%5B%5D=qux4️⃣
?foo=bar,quxКакой способ выбрать зависит от того какой framework или библиотеку вы используете. Для #nodejs разработчики использующих express ближе всего будет 2-й способ. По умолчанию express используют extended query parser, то есть использует qs. Эта библиотека учитывает
[] при парсинге.