Node中的fs文件模块和path路径模块「案例分析」

1. 简介

Node.js是一种能够以异步事件驱动的方式运行JavaScript代码的JavaScript运行环境,它的内建模块提供了许多基础工具,例如可以通过fs模块进行文件的读取和写入,通过path模块进行路径处理等等。

2. fs文件模块

2.1 文件读取

使用fs模块中的方法可以读取文件中的数据,与其他的Node.js API类似的是,该方法也是异步的。该方法有两个参数:文件路径和回调函数。其中,回调函数的两个参数分别是错误和数据。当读取成功时,错误参数为null,数据为文件的内容;否则,错误参数将包含相关错误信息,数据参数将被忽略。

const fs = require('fs');

fs.readFile('file.txt', (err, data) => {

if (err) throw err;

console.log(data);

});

2.2 文件写入

使用fs模块中的writeFile方法可以将数据写入文件中。该方法有三个参数:文件路径、写入的数据和回调函数。回调函数的参数仅有一个错误信息。如果错误参数为null,说明写入成功;否则,将输出相关错误信息。

const fs = require('fs');

fs.writeFile('file.txt', 'Hello World!', function (err) {

if (err) throw err;

console.log('File has been saved!');

});

2.3 文件删除

使用fs模块中的unlink方法可以删除指定的文件。该方法有两个参数:文件路径和回调函数。回调函数的参数仅有一个错误信息。如果错误参数为null,说明删除成功;否则,将输出相关错误信息。

const fs = require('fs');

fs.unlink('file.txt', function (err) {

if (err) throw err;

console.log('File has been deleted!');

});

3. path路径模块

3.1 路径解析

使用path模块的方法可以在不同操作系统中自动解析文件路径字符串。例如,使用join方法来获得文件路径。

const path = require('path');

const path_file = path.join(__dirname, 'file.txt');

console.log(path_file); // '/Users/yourname/project/file.txt' on Unix-based systems

3.2 路径标准化

使用path模块的normalize方法可以用斜杠(/)作为目录分隔符,而不受操作系统的影响。

const path = require('path');

const path_a = '/foo/bar//baz/asdf/quux/..';

console.log(path.normalize(path_a)); // '/foo/bar/baz/asdf'

3.3 路径拼接

使用path模块的join方法可以将多个路径拼接成一个。该方法会将所有参数都串起来,并返回一个统一的路径。

const path = require('path');

console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')); // '/foo/bar/baz/asdf'

3.4 路径分解

使用path模块的parse方法可以将路径分解成对象形式的元素,例如:root、dir、base、ext和name。

const path = require('path');

const path_file = '/foo/bar/baz/asdf/quux.html';

console.log(path.parse(path_file));

// {

// root: '/',

// dir: '/foo/bar/baz/asdf',

// base: 'quux.html',

// ext: '.html',

// name: 'quux'

// }

3.5 路径格式化

使用path模块的format方法可以将路径对象转换为路径字符串。

const path = require('path');

const path_obj = {

dir: '/foo/bar/baz/asdf',

base: 'quux.html'

};

console.log(path.format(path_obj)); // '/foo/bar/baz/asdf/quux.html'

4. 结束语

Node.js的fs和path模块是非常常用的模块,其中fs模块主要用于处理文件操作,包含文件的读取、写入和删除等操作,而path模块主要用于路径的处理,包含路径的拼接、标准化和分解等操作。了解这两个模块的使用方法,可以更加有效地使用Node.js编写出优秀的代码。