Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js url.parse仅为主机和协议返回null_Node.js_Url - Fatal编程技术网

node.js url.parse仅为主机和协议返回null

node.js url.parse仅为主机和协议返回null,node.js,url,Node.js,Url,我刚刚开始使用node.js。根据url,各部分应具有主机和协议的密钥。但是,两者都只返回null。为什么? 我正在给服务器打电话 http://localhost:8181/test/?var=vartest http.createServer(function(req, res) { var url_parts = url.parse(req.url,true); console.log(url_parts); ... }.listen(8181); 和控制台日志:

我刚刚开始使用node.js。根据url,各部分应具有主机和协议的密钥。但是,两者都只返回null。为什么?

我正在给服务器打电话
http://localhost:8181/test/?var=vartest

http.createServer(function(req, res) {
    var url_parts = url.parse(req.url,true);
    console.log(url_parts);
    ...
}.listen(8181);
和控制台日志:

{ protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: '?var=vartest',
  query: { var: 'vartet' },
  pathname: '/test/',
  path: '/test/?var=vartest',
  href: '/test/?var=vartest'
}

您可以使用以下代码获得所需的内容:

http.createServer(function(req, res) {
    var realUrl = (req.connection.encrypted ? 'https': 'http') + '://' + req.headers.host + req.url;
    var url_parts = url.parse(realUrl,true);
    console.log(url_parts);
    ...
}).listen(8181)
req.url
仅返回路径,您应该分别检测主机和协议