ExpressJS我无法获取以“http或https”

时间:2016-03-30 15:42:45

标签: node.js express parameters routes

我希望能够从我的URL获取一个实际上是URL的参数:

http://mywebsite.com/new/http://www.url.com

它适用于任何字符串,但当我将URL作为param(以http开头的字符串)传递时,我收到此错误:

Cannot GET /new/http://www.url.com

这是我的代码:

app.param('url', function(req, res, next, url) {
    if (isURL(url)) {
        req.url = url;
    } else {
        res.end('Invalid URL');
    }

    next();
});

app.get('/new/:url', function(req, res) {
    res.end(req.url);
});

var port = process.env.PORT || 8080;

app.listen(port, function() {
    console.log('Listening on port ' + port + '...');
});

非常感谢。

1 个答案:

答案 0 :(得分:2)

ExpressJS会自动解析网址并将其划分为' /',您可以执行以下操作

app.get('/new/:url*', function(req, res) {

    var urlInTheParam = req.params['url'] + req.params[0];
    //Then you can do you things with the url in the params

});