Node.js url.parse() и свойство pathname
Я читаю начатую книгу на node.js, называемую Node Книга для начинающих, а в приведенном ниже коде (приведенном в книге) я не понимаю значение свойство pathname, зависающее от метода анализа. Поэтому я хотел бы знать, что он делает. документация для этого метода мне не понятна
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();
}
\
Ответы
Ответ 1
pathname
- это раздел пути URL-адреса, который появляется после хоста и перед запросом, включая начальную косую черту, если она присутствует.
Например:
url.parse('http://stackoverflow.com/questions/17184791').pathname
предоставит вам:
"/questions/17184791"
Ответ 2
url.parse(urlString [, parseQueryString [, slashesDenoteHost]])
urlString: Строка URL для разбора.
parseQueryString: Если true, свойство запроса всегда будет установлено в объект, возвращаемый методом parse() метода querystring.
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
Вот пример:
var url = "https://u:[email protected]: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