проблема с экспресс-запросом js, передача нескольких значений / коллекций для ключа запроса

#node.js #express

#node.js #экспресс

Вопрос:

Мне нужно передать несколько значений, то есть коллекцию для определенного ключа запроса в express.

Возможно, моя память обманывает меня, но я склонен полагать, что я видел что-то подобное где-то в Интернете:

 http://<somehost>/<somepath>?id[]=10amp;id[]=11amp;id[]=12
  

Я знаю, что Ruby on Rails возвращает эти querystring значения в виде массива, но я думал, что у express есть какое-то похожее querystring поведение, но я не могу найти его в их документации.

Я что-то пропустил?

Ответ №1:

Тем временем я обнаружил, что это действительно работает с express.

Эта строка запроса

 http://<somehost>/<somepath>?id[]=10amp;id[]=11amp;id[]=12
  

выполняется синтаксический анализ в массив с помощью express js. Таким образом

 req.query.id => ["10","11","12"]
  

Это должно быть упомянуто в документации express.

На самом деле express использует пакет с именем ‘qs’, на который стоит взглянуть поближе:

https://github.com/ljharb/qs

Он даже выполняет глубокую вложенность, например

 http://<somehost>/<somepath>?persona[country][birth]=usamp;person[country][resident]=de
  

который анализируется в

 { person: { country: { birth: 'us', resident: 'de' } } }