📜  节点 | URL.format(urlObject) API

📅  最后修改于: 2022-05-13 01:56:56.980000             🧑  作者: Mango

节点 | URL.format(urlObject) API

所述URL.format(urlObject)是由URL类,它接受一个对象或字符串并返回来自该对象或字符串导出的格式的字符串所提供的内置的API。

句法:

const url.format(urlObject)

如果 urlObject 不是对象或字符串,则它将抛出TypeError
返回值:返回从 urlObject 派生的字符串。

urlObject 可以具有以下字段或键:



  • 协议
  • 斜线
  • 授权
  • 主机名
  • 主持人
  • 港口
  • 路径名
  • 搜索
  • 询问
  • 散列

格式化过程如下:

      1. 最初,创建一个空字符串('' 说result ),然后按顺序查找以下参数。

      2. urlObject.protocol:字符串

    • 如果urlObject.protocol是一个字符串,则它被附加到结果中,否则如果不是未定义且不是字符串,则抛出错误。
    • 如果urlObject.protocol不以 ASCII 冒号 ( :)结尾,则字面量“:”将附加到结果中。
      3. urlObject.slashes: 布尔值
    • 如果以下任一属性为真,则将字面量“//”附加到结果中:
      • urlObject.slashaes是真的。
      • urlObject.protocolhttp、https、ftp、gopher 或 file ,那么即使斜线为假,斜线也会自动为真。
        4. urlObject.auth:字符串
      • 如果urlObject.auth不是未定义的,并且 urlObject.host 或 urlObject.hostname 也不是未定义的,那么无论最后是否存在字面量'@' ,auth 都会附加到带有字面量'@'的结果中。
          5. urlObject.host:字符串
        • 如果urlObject.host是一个字符串,它将被附加到结果中,否则如果不是未定义且不是字符串,则抛出错误。
        • 如果未定义,则考虑 urlObject.hostname。
          6. urlObject.hostname:字符串
        • 如果 urlObject.hostname 是一个字符串,它将被附加到结果中,否则如果不是未定义且不是字符串,则抛出错误。
        • 如果定义了主机和主机名,则将考虑主机。
          7. urlObject.port: (number | 字符串)
        • 如果考虑主机名并定义了urlObject.port ,则字面量':' 将与 urlObject.port 一起附加到结果中。
          8. urlObject.pathname:字符串

        • 如果urlObject.pathname是字符串但不是空字符串并且不是以字面量“/”开头,则字面量“/”会附加到结果中。
        • urlObject.pathname 附加到结果中。
        • 否则 UrlObject.pathname 不是字符串,则抛出错误。
          9. urlObject.search:字符串
        • 如果urlObject.search是字符串但不是空字符串并且不以字面量'?'开头,然后是字面量'?'附加到结果中。
        • urlObject.search被附加到结果中。
        • 如果urlObject.search不是字符串,则抛出错误。
          10. urlObject.query: 对象
        • 如果urlObject.query是一个对象,那么字面量'?'与调用querystring模块的stringify()方法传递urlObject.query值的输出一起附加到结果中。
        • 如果urlObject.searchurlObject.query都被定义,那么urlObject.search将只被考虑。
          11. urlObject.hash:字符串
        • 如果urlObject.hash是字符串但不是空字符串并且不是以字面量'#'开头,则字面量'#'将附加到结果中。
        • urlObject.hash附加到结果中。
        • 否则urlObject.hash不是字符串并且不是未定义的,然后抛出错误。
          12. 最后返回结果

      示例 1

      /*
        node program to demonstrate the URL.format API.
      */  
          
      //importing the module 'url'
      const url = require('url');
        
      //creating and initializing urlObject
      var urlObject={
              protocol: 'https',
              hostname: 'example.com',
              port: 1800,
              pathname: 'sample/path',
              query: {
                      page: 1,
                      format: 'json'
              },
              hash: 'first'
          }
        
      //getting the derieved URL from urlObject using the url.format function
      var sampleUrl=url.format(urlObject);
        
      //Display the returned value
      console.log(sampleUrl.toString());
         
      
      Output: https://example.com:1800/sample/path?page=1&format=json#first

      示例 2

      /*
        node program to demonstrate the URL.format API.
      */  
          
      //importing the module 'url'
      const url = require('url');
        
      //creating and initializing urlObject
      var urlObject={
              protocol: 'prct',
              slashes: false,
              host: 'example.com',
              auth: 'abc',
              pathname: '/sample/path',
              search: 'something',
              hash: 'first'
          }
        
      //getting the derieved URL from urlObject using the url.format function
      var sampleUrl=url.format(urlObject);
        
      //Display the returned value
      console.log(sampleUrl.toString());
      
      Output: prct:abc@example.com/sample/path?something#first

      注意:上述程序将使用node fileName.js命令编译和运行。

      参考:
      https://nodejs.org/api/url.html#url_url_format_urlobject