【发布时间】:2016-08-03 23:00:27
【问题描述】:
我正在尝试解析节点 js 中的 url。从此代码中获取空值。它正在接收路径的值。但不适用于主机或协议。,
var http = require('http');
var url = require('url');
http.createServer ( function (req,res){
var pathname = url.parse(req.url).pathname;
var protocol = url.parse(req.url).protocol;
var host = url.parse(req.url).host;
console.log("request for " + pathname + " recived.");
console.log("request for " + protocol + " recived.");
console.log("request for " + host + " recived.");
res.writeHead(200,{'Content-Type' : 'text/plain'});
res.write('Hello Client');
res.end();
}).listen(41742);
console.log('Server Running at port 41742');
console.log('Process IS :',process.pid);
【问题讨论】:
-
您能给我们举一个不起作用的 URL 的示例,并且您还让控制台记录了 req.url 吗?
-
HTTP 协议不会在一个值中传递组合 URL 以供 Node 解析。在
req.url中只给出了路径和可选的查询字符串(对于GET /foo请求,req.url === "/foo")。Host在请求标头中,至少在 HTTP 1.1 及更高版本中。 -
那么如何打印主机和协议呢?谢谢
标签: javascript node.js express