代码之家  ›  专栏  ›  技术社区  ›  B''H Bi'ezras -- Boruch Hashem

Node.js/JavaScript:获取URL parth hierchy的所有部分

  •  0
  • B''H Bi'ezras -- Boruch Hashem  · 技术社区  · 5 年前

    var url = require("url");
    
    ...
    
    http.createServer((req,res) => console.log(url.parse(req.url).query))
    

    但只有当变量采用查询字符串格式时:

    example.com/index.html?key=val&key2=val2
    

    但是,如果我想以值的形式获取“变量”,如果url的格式是:

    example.com/key/val/key2/val2
    

    我可以把数组分成 / ,然后相应地映射它:

    var pathParts = request.url.split("/").filter(x => x.length > 0).map(x => x.split("%20").join(" "));
    

    example.com/url/http://google.com
    

    所以我怎样才能得到 / 作为唯一的数组元素,即使存在嵌套的/?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Michał Sadowski    5 年前

    首先,当您创建一个url时,您需要使用 encodeURIComponent() . 这样您将得到一个url,例如: example.com/url1/http%3A%2F%2Fgoogle.com/url2/http%3A%2F%2Fbing.com . 然后再把它读回来就和使用:

    let requestArray = request.url.split("/")
    let requestDecodedArray = requestArray.map((el)=>decodeURIComponent(el))