2015-08-19 3 views
0

У меня есть запрос GET, и я хочу иметь возможность передавать несколько аргументов, разделенных /. Я хочу, чтобы они были доступны мне как массив на сервере.ExpressJS GET-запрос с несколькими аргументами

Я использовал ответ here, и получил маршрут: '/myRoute/(:someValue)*, то:

var values = [req.params.someValue].concat(req.params[0].split('/').slice(1)); 

Проблема заключается в том, что все аргументы представляют собой строки, состоящие из цифр, букв и некоторых _, например 172394_G_S. Это отлично работает для второго, третьего и т. Д. Аргументов, но для первого (someValue) я просто получаю первый символ. То есть: я получаю первый символ someValue, но для остальных моих аргументов я получаю полную строку.

Что я делаю неправильно?

ответ

0

Вы можете попытаться изменить свой маршрут

'/myRoute/(:someValue)/*' 

С выше маршрута, я получаю: SomeValue как полная строка

+0

Спасибо за предложение! Я получаю 'someValue' как полную строку с этим маршрутом, но второй исчезает. Например. для 'myRoute/a/b/c/d' Я получаю массив' [a, c, d] '. – Esso

+0

, потому что вы нарезаете массив массивом с помощью .slice (1) – murnax

+0

удалите эту функцию среза, вы увидите второй параметр – murnax

Смежные вопросы