在以下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包含搜索查询的参数。
答案 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