Tu je kód:
var url = require("url");
console.log(url.parse("localhost:3000"));
Výsledky v produkcii sú nasledovné:
{ protocol: "localhost:",
host: "3000",
hostname: "3000",
href: "localhost:3000" }
Veľmi divné. Myslím, že je to preto, že na začiatku neexistuje "http". v takom prípade som čakal niečo ako:
{ port: "3000",
host: "localhost",
hostname: "localhost",
href: "localhost:3000" }
Akékoľvek tretie strany dobré knižnice alebo návrh na dosiahnutie tohto cieľa?
odpovede:
1 pre odpoveď č. 1Presne povedané to, čo ste odovzdali, nie je platná webová adresa. Podľa RFC 3986 schéma nie je voliteľná:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty
Vzhľadom na to by Node.js samozrejme v tomto prípade mohol upozorniť na neplatnú adresu URL.
Podľa môjho názoru, v takom triviálnom prípade, namiesto hľadania ďalšej knižnice by bolo lepšie len napísať niekoľko riadkov kódu na opravu adresy URL najprv pred jej odovzdaním do analyzátora.
okrem toho, v tomto konkrétnom prípade výlučne na základe vyššie uvedenej definície analyzátor má všetky dôvody na to, aby pochopil localhost ako schému, namiesto hostiteľa.