Подтвердить что ты не робот

Использование нескольких параметров в 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 - правильный способ сделать это. Это?

4b9b3361

Ответ 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}