url.searchParams在node.js中返回undefined

时间:2017-12-24 19:33:09

标签: node.js

在以下node.js示例中:

var url = require('url');
var urlString='/status?name=ryan'
var parseObj= url.parse(urlString);

console.log(urlString);
var params = parseObj.searchParams;
console.log(JSON.stringify(params));

属性searchParams未定义。我希望searchParams包含搜索查询的参数。

2 个答案:

答案 0 :(得分:3)

正如您在https://nodejs.org/dist/latest-v8.x/docs/api/url.html#url_class_urlsearchparams

中看到的那样

searchParams是URL对象的代理。您必须获取新的URL完整对象(使用域和协议),然后您可以使用searchParams:

var url = require('url');
var urlString='https://this.com/status?name=ryan'
var parseObj= new url.URL(urlString);

console.log(urlString);
var params = parseObj.searchParams;
console.log(params);

其他方式是使用query属性(您必须将true作为第二个参数传递给url.parse):

var urlString='/status?name=ryan'
var parseObj= url.parse(urlString, true);

console.log(parseObj);
var params = parseObj.query;
console.log(params);

答案 1 :(得分:1)

建议使用:var parsedUrl = new URL(request.url, 'https://your-host'); 而不是 url.parse

url.parse 不应在新应用程序中使用。它已被弃用并可能导致一些安全问题:as stated here