我正在阅读node.js上的一本入门书籍,名为 Node Beginner Book ,并在下面的代码中(书中给出)我不明白pathname属性挂起的意义关闭解析方法。所以我想知道它在做什么。我不清楚此方法的documentation
var pathname = url.parse(request.url)**.pathname;**
var http = require("http");
var url = require("url");
function start(route, handle) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname; // I don't understand the pathname property
console.log("Request for " + pathname + " received.");
route(handle, pathname);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}
答案 0 :(得分:43)
pathname
是URL的路径部分,它位于主机之后和查询之前,包括初始斜杠(如果存在)。
例如:
url.parse('http://stackoverflow.com/questions/17184791').pathname
会给你:
"/questions/17184791"
答案 1 :(得分:5)
以下是一个例子:
var url = "https://u:p@www.example.com:777/a/b?c=d&e=f#g";
var parsedUrl = require('url').parse(url);
...
protocol https:
auth u:p
host www.example.com:777
port 777
hostname www.example.com
hash #g
search ?c=d&e=f
query c=d&e=f
pathname /a/b
path /a/b?c=d&e=f
href https://www.example.com:777/a/b?c=d&e=f#g
另一个:
var url = "http://example.com/";
var parsedUrl = require('url').parse(url);
...
protocol http:
auth null
host example.com
port null
hostname example.com
hash null
search null
query null
pathname /
path /
href http://example.com/
Node.js docs:URL Objects
答案 2 :(得分:0)
url.parse(urlString[, parseQueryString[, slashesDenoteHost]])
urlString:要解析的网址字符串。
parseQueryString:如果为true,则查询属性将始终设置为querystring模块的parse()方法返回的对象。
slashesDenoteHost:如果为true,则文字字符串//后面的第一个标记将被解释为主机
因此,url.parse()方法接受一个URL字符串,解析它,并返回一个URL对象。
因此,
var pathname = url.parse(request.url).pathname;
将返回主机的路径名,后跟'/'
例如:
var pathname = url.parse(https://nodejs.org/docs/latest/api/url.html).pathname
将返回:
/docs//latest/api/url.html
答案 3 :(得分:0)
路径名 是服务器和端口后面的URL部分的一部分。 其中,var pathname = url.parse(request.url).pathname; request.url,从URL节请求URL,URL节是组件的集合-localhost的IP地址,端口号和文件路径名。
通过一个例子来理解它,假设这是要向服务器请求的URL http://127.0.0.1:8082/ 但是为了响应客户,应该有一个html文件,将其设为index.html,然后 http://127.0.0.1:8080/index.html 该html文件是url的.pathname。 所以,在 var pathname = url.parse(http://127.0.0.1:8080/index.html).pathname 路径名是作为对客户端的响应的index.html。
答案 4 :(得分:0)
如果以下网址在nodejs“ http://localhost:9090/page/edit?pageId=1&type=edit”中重定向
q.pathname将是URL的“ / page / edit”部分。请找到
的其他部分manage = True