2

场景:考虑以下代码:

var querystring = require('querystring');
var ParamsWithValue = querystring.parse(req._url.query);

然后我可以读取任何查询字符串的值。
例如:如果请求的字符串是http://www.website.com/Service.aspx?UID=Trans001&FacebookID=ae67ea324
我可以分别用代码ParamsWithValue.UID& 获取查询字符串的值ParamsWithValue.FacebookID

问题:我能够获取以上述相同方式传递的任意数量参数的值。但是第二次我在浏览器上收到以下错误响应。

错误

{"code":"InternalError","message":"Cannot read property 'query' of undefined"}

问题:从 URL 读取查询字符串的方法有什么问题。

注意:我不想使用任何框架来解析它。我试图仅依赖内置模块。


更新:当任何参数的值更改时,它会正确响应。但是,如果从不同的浏览器再次请求相同的值,则会引发相同的错误。

4

1 回答 1

7
  1. 我认为你需要 req.url 而不是 req._url。

  2. req.url 是一个字符串,如果你想要一个 URI 实例使用 require('url').parse(req.url)

  3. 所以,你最终应该有:

    var ParamsWithValue = querystring.parse(require('url').parse(req.url).query);

编辑:我纠正了第 1 点的错字,最后一个 req.url -> req._url

于 2013-04-09T08:47:30.303 回答