Использование нескольких параметров в URL в экспресс
Я использую Express с Node, и у меня есть требование, в котором пользователь может запросить URL как: http://myhost/fruit/apple/red
.
Такой запрос возвращает ответ JSON.
Данные JSON перед вызовом выше:
{
"fruit": {
"apple": "foo"
}
}
С вышеуказанным запросом данные JSON для ответа должны быть:
{
"apple": "foo",
"color": "red"
}
Я сконфигурировал выражение для маршрутизации следующим образом:
app.get('/fruit/:fruitName/:fruitColor', function(request, response) {
/*return the response JSON data as above using request.params.fruitName and
request.params.fruitColor to fetch the fruit apple and update its color to red*/
});
Но это не работает. Я не уверен, как передать несколько параметров, то есть я не уверен, что /fruit/:fruitName/:fruitColor
- правильный способ сделать это. Это?
Ответы
Ответ 1
app.get('/fruit/:fruitName/:fruitColor', function(req, res) {
var data = {
"fruit": {
"apple": req.params.fruitName,
"color": req.params.fruitColor
}
};
send.json(data);
});
Если это не сработает, попробуйте использовать console.log(req.params), чтобы узнать, что он вам дает.
Ответ 2
Для чего я хочу использовать
app.get('/fruit/:fruitName&:fruitColor', function(request, response) {
const name = request.params.fruitName
const color = request.params.fruitColor
});
или еще лучше
app.get('/fruit/:fruit', function(request, response) {
const fruit = request.params.fruit
console.log(fruit)
});
где плод - это объект. Поэтому в клиентском приложении вы просто вызываете
https://mydomain.dm/fruit/{"name":"My fruit name", "color":"The color of the fruit"}
и в ответ вы должны увидеть:
// client side response
// { name: My fruit name, , color:The color of the fruit}