2014-10-02 12 views
1

中获取网址路由中的一个参数实际上是一个url。如何从参数

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

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

如何允许时,这种经历:URL实际上是像“http://domain.com/file.xml”的链接。

我得到一个404错误,我明白,因为它没有正确链接,并且无法处理,因为它的错误。

在此先感谢。

+0

该端点的完整URL的示例如何显示?你是否正确编码了URL参数?我猜不会。 – 2014-10-02 15:55:09

+0

注意这个问题。我的网址是http:// localhost:3000/api/sitemap/domain.com/file.xml,似乎无论如何都会抛出错误。 – user2091936 2014-10-02 16:01:19

+0

如果您尝试使用“http:// localhost:3000/api/sitemap/domain.com%2Ffile.xml”,该怎么办?我猜如果你得到一个404错误,这意味着服务器无法找到该URL的路由。 – 2014-10-02 16:08:09

回答

1

您的路由器返回404,因为它无法识别路径。 您应该编码的URL PARAM作为意见提出,或进一步分析它,如:

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

麻烦的存在,如果你传递的协议,你必须甚至匹配。

没有一个控制台现在试试,但我想你也许可以通过通配符:

'/api/sitemap/*' 

你将不得不解析出网址,您自己的话,但其实很简单: (不知道这是索引那里的13或14,因为我在我的手机:-))。