一尘不染

在Express中使用URL中的多个参数

node.js

我将Express与Node一起使用,并且我有一个要求用户可以将URL请求为:http://myhost/fruit/apple/red

这样的请求将返回JSON响应。

上述调用之前的JSON数据如下:

{
    "fruit": {
        "apple": "foo"
    }
}

通过上述请求,响应JSON数据应为:

{
    "apple": "foo",
    "color": "red"
}

我已经配置了Express路由,如下所示:

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正确的方法。是吗?


阅读 462

收藏
2020-07-07

共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)看看它能为您提供什么。

2020-07-07