在Node.JS中使用'querystring.parse'内置模块的方法来读取/解析参数

Amo*_*rni 2 request.querystring node.js query-string querystringparameter

场景:请考虑以下代码:

var querystring = require('querystring');
var ParamsWithValue = querystring.parse(req._url.query);
Run Code Online (Sandbox Code Playgroud)

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

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

错误:

{"code":"InternalError","message":"Cannot read property 'query' of undefined"}
Run Code Online (Sandbox Code Playgroud)

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

注意:我不想使用任何框架来解析它.我只想依靠内置模块.


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

maj*_*ann 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