如何从参数中获取url

时间:2014-10-02 15:54:03

标签: javascript node.js

路由中的一个参数实际上是一个url。

router.get('/api/sitemap/:url', function(req, res) 
        {

            var  url = req.params.url;
            ...
        }

当:url实际上是" http://domain.com/file.xml"等链接时,如何允许此操作。

我收到404错误,我理解这是因为它没有正确链接,因此无法处理错误。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的路由器返回404,因为它无法识别路径。 您应该按照注释中的建议对url参数进行编码,或者将其进一步切片,如下所示:

.get('/api/site/:domain/: file', cb)

问题在于,如果你也通过了协议,那么你必须匹配。

现在没有控制台可以尝试,但我认为您可以通过通配符:

'/api/sitemap/*'

你必须自己解析网址,但这很简单:

var url = req.url.substr(14);

(不确定那里的索引是13还是14,因为我在我的手机上,所以依靠指针: - ))。