Node.js url.parse()和pathname属性

时间:2013-06-19 06:59:44

标签: node.js

我正在阅读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();
}

5 个答案:

答案 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

enter image description here