89

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これを行う正しい方法かどうかわかりません。それは...ですか?

4

3 に答える 3

154
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)を使用して、何が得られるかを確認してください。

于 2013-02-28T06:37:37.253 に答える
35

あなたが欲しいもののために私は使ったでしょう

    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}
于 2017-09-14T03:23:28.073 に答える
3

どちらの方法も正しいですあなたはそれらのどれでも使うことができます最初の方法

app.get('/fruit/:one/:two', function(req, res) {
    console.log(req.params.one, req.params.two)
});

&記号を使用する別の方法

app.get('/fruit/:one&:two', function(req, res) {
    console.log(req.params.one, req.params.two)
});
于 2021-08-21T11:07:50.937 に答える