• 06-Node.js内置模块:path路径模块

    # path 路径模块

    Node.js 通过path这个内置模块,提供了一些路径操作的API,具体可以参考官方的api文档。这里列举一些常用的API。

    # path.extname() 获取文件/路径的扩展名

    语法格式:

     path.extname(myPath);
    
    1

    代码解释:

    • 获取 myPath 这个文件或者路径的扩展名。

    • myPath 这个参数要求是字符串。如果 myPath 不是字符串,则抛出 TypeError。

    代码举例:

    const path = require('path');
    
    path.extname('hello.txt'); // 返回 '.txt'
    
    path.extname('www.qianguyihao.com'); // 返回 '.com'
    
    path.extname('index.coffee.md');  // 返回 '.md'
    
    path.extname('index.');  // 返回 '.'
    
    path.extname('index');  // 返回 ''
    
    path.extname('.index');  // 返回 ''
    
    path.extname('.index.md');  // 返回 '.md'
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    # path.resolve() 生成完成的绝对路径

    语法格式:

    path.resolve([...myPaths])
    
    1

    解释:

    • 将路径或路径片段的序列解析为绝对路径。

    • 返回的路径是从右往左处理,后面的每个 myPath 被依次解析,直到构造出一个完整的绝对路径。

    代码举例:

    const path = require('path');
    
    let arr1 = ['/foo1/foo2', 'qianguyihao', 'foo3'];
    let result1 = path.resolve(...arr1);
    console.log(result1); // 打印结果:/foo1/foo2/qianguyihao/foo3
    
    let arr2 = ['/foo1/foo2', '/qianguyihao', 'foo3'];
    let result2 = path.resolve(...arr2);
    console.log(result2); // 打印结果:/qianguyihao/foo3
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 几个常见路径

    • __dirname:这是一个常量,表示:当前执行文件所在完整目录

    • __filename:这是一个常量。表示:当前执行文件的完整目录 + 文件名

    • process.cwd:获取当前执行 Node命令 时的目录名。

    代码举例:

    console.log(__dirname);
    
    console.log(__filename);
    
    console.log(process.cwd());
    
    1
    2
    3
    4
    5

    运行结果:

    $ node app.js
    
    /Users/smyhvae/qianguyihao
    /Users/smyhvae/qianguyihao/app.js
    /Users/smyhvae/qianguyihao
    
    1
    2
    3
    4
    5

    # path.join() 将多个路径进行拼接

    如果是我们手动拼接路径,容易出错。这个时候,可以利用 path.join() 方法将路径进行拼接。

    语法格式:

    path.join([...paths]);
    
    
    1
    2

    解释:使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。

    代码举例:

    const path = require('path');
    
    const result1 = path.join(__dirname, './app.js');
    console.log(result1); // 返回:/Users/smyhvae/qianguyihao/app.js
    
    const result2 = path.join('/foo1', 'foo2', './foo3');
    console.log(result2); // 返回:/foo1/foo2/foo3
    
    const result3 = path.join('/foo1', 'foo2', '/foo3');
    console.log(result3); // 返回:/foo1/foo2/foo3
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    # OS 系统模块

    • os.networkInterfaces() 查看网络地址