В настоящее время я изучаю MEAN-Stack и пишу инструмент в своем API, который умножает ряд чисел. У меня есть два вопроса, на которые Экспресс-документация не дала ответов.
- Как я могу маршрутизировать URL-адреса переменной глубины? В настоящее время я делаю следующее:
router.route('/multiply/:a/:b')
.get(function(req,res){
/*multiply*/
return res.send(respone);
});
Как видите, таким образом я могу умножить только 2 числа, а не столько, сколько хотелось бы, и этот подход маршрутизирует что угодно, а не только числа для a и b. Итак, мой второй вопрос: как мне маршрутизировать только числа как a & b?
С уважением, Клаас М.
2 ответа
Вы можете использовать маршрут с подстановочными знаками для сопоставления всех номеров, а затем просто выполнить взрыв параметров запроса самостоятельно:
// matches /multiply/1/3/4/5/32/4 etc...
router.route('/multiply/:numbers([0-9]+)*')
.get(function(req, res){
// req.params.numbers will equal /1/3/4/5/32/4
var numbers = req.params.numbers.split('/');
// ..
// multiply numbers
// ..
return res.send(answer);
});
Тестер Express Route — действительно полезный инструмент: http://forbeslindesay.github.io/express-route. -тестер/
multiply/1/2/3
, число содержит только 1, потому что req.params.numbers
- это только 1. Любая идея, почему это может быть?
После того, как я приложил к этому слишком много усилий, я пришел к выводу, что проще просто использовать POST вместо того, чтобы помещать данные в URL-адрес. Но если кто-то знает решение, я все равно буду благодарен.
router.route('/multiply/:a/:b')
.post(function(req,res){
var array = req.body.numbers;
/*multiply*/
return res.send(respone);
});
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
a
, например, а затем поместить сериализованную строку с тем, что вам нужно, в качестве значений.