我的节点表达参数长两个字 - 如何将两个单词放在一起?

时间:2017-09-24 05:02:19

标签: node.js express

我有一个使用参数的节点表达端点。

    app.get('/api/viewevents/:category', ec.getEventsByCat)

    getEventsByCat: (req, res, next) => {
    let {params} = req;
    console.log(req.params.category)
    req.app.get('db').get_events_by_category([req.params.category])
        .then(events => res.status(200).send(events))
        .catch(() => res.status(500).send());
},

当我使用单字参数调用我的端点时,它会成功返回。我的一些潜在参数不止一个字,我试图找到正确的语法来保持两个字串在一起。

例如,请求:

    '/api/viewevents/infrastructure'

    '/api/viewevents/environmental'

效果很好,但是这样的请求不会......

  '/api/viewevents/household+tasks'

    '/api/viewevents/disaster+relief'

可能没有用Google搜索正确的方式来获得我正在寻找的答案

1 个答案:

答案 0 :(得分:0)

使用类似

的内容
app.get('/endpoint/:var1/:var2', function(req, res) {
    var data = {
        "data": {
            "var1": req.params.var1,
            "var2": req.params.var2
        }
    }; 

    send.json(data);
});

所以在你的情况下

app.get('/api/viewevents/:category1/:category2', ec.getEventsByCat)

getEventsByCat: (req, res, next) => {
let {params} = req;
console.log(req.params.category1)
req.app.get('db').get_events_by_category([req.params.category1])
    .then(events => res.status(200).send(events))
    .catch(() => res.status(500).send());
},

您必须进行更多更改才能使代码正确处理您希望的功能的两个变量