NodeJs开发实战(六、文件操作)

本文详细介绍了Node.js中fs模块的文件操作API,包括文件的读取、写入、追加、复制、信息获取、路径操作、目录创建、读取及删除等基本功能,为开发者提供了实用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本文件操作

Node.js的文件操作API由fs(File System)内置模块提供,该模块提供的函数具有异步和同步两个版本,下面是异步对应的API

文件写入数据
//引入fs内置模块
const fs = require('fs');

//第一个参数:文件名或描述符
//第二个参数:要写入的数据,可以是String字符串或Buffer流对象
//第三个参数:回调函数只包括错误信息参数(err),在写入失败时返回
fs.writeFile('D:/test.txt', '每天进步一点', err => {

    if (err) return console.log('文件写入失败');
    console.log('文件写入完成')
});
文件追加数据
//引入fs内置模块
const fs = require('fs');

//第一个参数:文件名或描述符
//第二个参数:要追加的数据,可以是String字符串或Buffer流对象
//第三个参数:回调函数只包括错误信息参数(err),在写入失败时返回
fs.appendFile('D:/test.txt', '好好学习,天天向上', err => {

    if (err) return console.log('文件追加失败');
    console.log('文件追加完成')
});
文件读取
//引入fs内置模块
const fs = require('fs');

//第一个参数:文件绝对路径
//第二个参数:回调函数包括错误信息参数(err),读取内容(data)
fs.readFile('D:/test.txt', (err, data) => {
    
    if (err) return console.log('文件读取失败');
    console.log(data.toString());
})
文件复制
//引入fs内置模块
const fs = require('fs');

//先读取文件内容
fs.readFile('D:/test.txt', (err, data) => {
    if(err) return console.log('读取文件失败');

    //文件读取成功,则将内容写入第二个文件
    fs.writeFile('D:/test2.txt', data, err => {

        if(err) return console.log('写入文件失败');
    })
    console.log('文件复制成功了');
})
文件信息获取
//引入fs内置模块
const fs = require('fs');

//第一个参数:文件路径
//第二个参数:回调函数包括错误信息参数(err),文件信息对象(stats)
fs.stat('D:/test.txt', (err, stats) => {

    if(err) return console.log('获取文件信息失败');

    console.log(stats.isFile());//是否为文件
    console.log(stats.isDirectory());//是否为目录
    console.log(stats.isSymbolicLink());//是否为软链接
})
路径相关操作
//引入path内置模块
const path = require('path');

//文件路径
let filePath = 'D:/test.txt';

console.log(path.basename(filePath));//test.txt
console.log(path.dirname(filePath));//D:/
console.log(path.extname(filePath));//.txt
console.log(path.isAbsolute(filePath));//true
console.log(path.sep);//\
目录创建
//引入fs内置模块
const fs = require('fs');

//第一个参数:目录路径
//第二个参数:回调函数只包括错误信息参数(err),在创建失败时返回
fs.mkdir('D:/test', err => {

    if(err) return console.log('目录创建失败');

    console.log('目录创建成功');
})
目录读取
//引入fs内置模块
const fs = require('fs');

//第一个参数:文件名或描述符
//第二个参数:回调函数包括错误信息参数(err),读取文件夹下文件列表(files)
fs.readdir('D:/test', (err, files) => {

    if(err) return console.log('目录读取失败');

    //遍历目录下所有的文件
    files.forEach(file => {
        console.log(file);
    })
})
删除目录和删除文件

删除目录时有一个要求,就是该目录必须为空,所以删除目录的操作还需要读取目录和删除文件操作进行支持。

//引入fs内置模块
const fs = require('fs');

//删除目录路径
let dirPath = 'D:/test/';

//使用内置模块读目录
fs.readdir(dirPath, (err,files) => {

    if(err) return console.log('读取失败');

    //遍历目录下文件
    files.forEach(file => {
        //删除文件
        fs.unlink(dirPath + file, err => {
            if(err) return console.log('文件删除失败');

            console.log('文件删除成功');
        })
    });
    setTimeout(() => {
        fs.rmdir(dirPath, err => {
            if(err) return console.log('目录删除失败');
            console.log('目录删除成功');
        });
    });
});
结束语

如果您发现有不对的地方,欢迎指正。或者在学习过程中遇到任何问题,欢迎留言相互学习,谢谢!

Node.js项目实战开发是指利用Node.js技术栈进行实际的项目开发工作。通过使用Node.js及其相关工具和框架,开发人员可以快速构建高性能的Web应用、API接口、跨平台的桌面应用等。以下是一些常见的Node.js项目实战开发方法和步骤: 1. 安装Node.js和npm:首先需要在本地环境中安装Node.js和npm(Node Package Manager),这样才能使用Node.js的各种功能和工具。 2. 创建项目:使用命令行工具进入项目所在的文件夹,运行`npm init`命令来创建一个新的Node.js项目。这将生成一个`package.json`文件,用于管理项目的依赖和配置信息。 3. 安装依赖:根据项目需求,在`package.json`文件中添加所需的依赖项,并使用`npm install`命令安装这些依赖。 4. 使用Express框架:Express是一个流行的Node.js Web框架,可以简化项目的开发过程。通过使用Express,可以方便地创建路由、处理HTTP请求和响应、管理中间件等。可以使用`npm install express`命令安装Express,并在项目代码中引入和使用。 5. 使用其他框架和工具:除了Express,还可以根据项目需求选择和使用其他适合的框架和工具。例如,使用Electron框架可以构建跨平台的桌面应用,使用restify框架可以快速构建API接口,使用数据库框架可以实现数据的读写和操作等。 6. 开发和调试:在项目代码中编写业务逻辑和功能实现,并使用调试工具(如nodemon)对项目进行实时监测和自动重启。这样可以提高开发效率,节省手动重启项目的时间。 7. 测试和优化:在开发过程中,进行单元测试和集成测试,确保项目的功能和性能符合要求。根据测试结果进行性能调优和代码优化,提升项目的质量和效率。 8. 部署和发布:完成开发和测试后,将项目部署到服务器或云平台上,并配置好相关的环境和参数。根据项目需求,可以选择不同的部署方式,如使用Docker容器、服务器less架构等。 总结来说,Node.js项目实战开发需要掌握Node.js的基础知识和相关工具,选择适合的框架和工具,编写代码实现项目需求,并进行测试、优化和部署。通过不断的实践和学习,开发人员可以提升自己的Node.js项目实战能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅帅的猪头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值