从Angular-URL获取Node.js中的查询参数

时间:2015-09-28 12:59:43

标签: javascript angularjs node.js express

我创建了一个SPA,我使用Angular来做到这一点。现在我遇到一个问题,当我需要阅读网址"创建"在Node.js中使用Angular

例如:

我的网址是:

http://example.com/#/home?answer=yes

通常,如果网址是这样的:

http://example.com/home?answer=yes

我可以得到"答案"使用:

app.get("/home", function(req,res) {
 var answer = req.query.answer;
})

但由于#节点似乎无法解析网址。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

#之后的url部分称为片段部分,传统上甚至不发送到服务器,因为它意味着包含客户端的数据。

有关详细信息,请参阅fragment identifier上的维基百科:

  

代理将URI发送到服务器,但不发送片段。相反,代理等待服务器发送资源,然后代理根据文档类型和片段值处理资源

这意味着当您在示例中发送http://example.com/#/home?answer=yes这样的URL的GET请求时,将为您提取example.com,并且由您的客户端代码解析#/home?answer=yes片段,考虑到home参数的给定值,按惯例会涉及渲染answer路径(在SPA内)。

由于上述原因,如果您要解析服务器端的/home?answer部分,您的请求网址应在任何#标志之前包含它们。