likes
comments
collection
share

重学Node.js系列(六)

作者站长头像
站长
· 阅读数 22

前面学习到了文件系统模块fs,它和路径模块path,还有http模块(前面使用http模块实现过一个基础的服务器)都属于Node.js 内置 API 模块,其实前面学习文件系统模块都已经在使用路径模块了,今天来详细学习下路径模块,并结合文件系统模块实现一个简单文件操作案例。

路径模块(path)

path模块是Node.js官方提供的,用来处理路径的模块

引用路径模块
const path = require('path');

1. 路径拼接

path.join()可以把多个路径片段拼接为完整的路径字符串。

语法格式: path.join([...paths])

// 拼接路径(..表示上层路径;.表示当前路径),在连接路径的时候会格式化路径
path.join('/foo', 'bar', 'baz/asdf', 'quux', '../../');

../会抵消前面的路径,所以下图得到的路径拼接只拼接到baz(不要提供 ./ ../ 开头的相对路径,防止路径动态拼接的问题) 重学Node.js系列(六)

2. 获取路径中的文件名

path.basename()可以获取路径中最后一部分。

语法格式: path.basename(path[, ext])

参数说明: path - 必须参数,表示一个路径字符串; ext - 可选参数,表示文件扩展名

// 获取路径的最后一部分
path.basename('/foo/bar/baz/asdf/quux.html');
path.basename('/foo/bar/baz/asdf/quux.html', '.html');

重学Node.js系列(六)

3. 获取路径中的文件扩展名

path.extname()可以获取路径中的扩展名部分。

语法格式: path.extname(path)

// 获取扩展名称
path.extname('index.html');  //输出 .html

其它一些路径基本操作API:

重学Node.js系列(六)

重学Node.js系列(六) 重学Node.js系列(六)

文件操作案例(初始化目录结构)

  1. 创建一个main.js文件,写入以下代码
const path = require('path');
const fs = require('fs');
//(/转义)
let root = 'D:\\xm';
let fileContent = `
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div>写入内容</div>
</body>
</html>
`;

// 初始化数据
let initData = {
    projectName : 'mydemo',
    data : [{
        name : 'img',
        type : 'dir'
    },{
        name : 'css',
        type : 'dir'
    },{
        name : 'js',
        type : 'dir'
    },{
        name : 'index.html',
        type : 'file'
    }]
}

// 创建项目
fs.mkdir(path.join(root,initData.projectName),(err)=>{
    if(err) return;//如果错误,终止
    // 创建子目录和文件
    initData.data.forEach((item)=>{
        if(item.type == 'dir'){
               // 创建子目录 同步写法              
               fs.mkdirSync(path.join(root,initData.projectName,item.name));
        }else if(item.type == 'file'){
            // 创建文件并写入内容
            fs.writeFileSync(path.join(root,initData.projectName,item.name),fileContent);
        }
    });
});
  1. 执行命令node main.js,就可以在D盘的xm文件夹下,得到下面的图上的文件目录结构

重学Node.js系列(六)