Nodejs 對(duì) 內(nèi)置模塊fs簡(jiǎn)單使用技巧與操作方法,模塊文件夾的curd與文件的curd
版權(quán)聲明:本文為CSDN博主「NanQiao1716」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/NanQiao1716/article/details/104680879
1.對(duì)nodejs內(nèi)置模塊fs的簡(jiǎn)單操作與使用方法,對(duì)文件夾和文件進(jìn)行同步和異步操作時(shí),異步需要使用callback回調(diào)函數(shù),同步則不需要,而在異步操作中,都是錯(cuò)誤的回調(diào)優(yōu)先
- 1.如對(duì)nodejs是什么,以及nodejs npm配置源是什么不知可查看nodejs簡(jiǎn)介
- 2.要使用nodejs內(nèi)置模塊,那么就要引用fs 引用方式 const fs = require('fs')
2.引用內(nèi)置模塊之后對(duì)文件夾的curd使用,及 create創(chuàng)建 update 修改 read 讀取 delete刪除
對(duì)文件夾操作的方法對(duì)下面的
- 參數(shù)path代指路徑,[options]參數(shù)類(lèi)型,用中括號(hào)包起的可以不填,callback回調(diào)函數(shù),一般只有進(jìn)行異步操作時(shí)才會(huì)用到,
- fs.mkdir(path[, options], callback)異步創(chuàng)建文件夾,當(dāng)文件夾存在的時(shí)候,不可創(chuàng)建
- fs.mkdirSync(path[, options])同步創(chuàng)建文件夾
//oldPath舊的路徑 newPath新的路徑 - fs.rename(oldPath, newPath, callback)異步修改文件夾名
- fs.renameSync(oldPath, newPath)同步修改文件夾名
- fs.readdir(path[, options], callback)異步讀取文件夾
- fs.readdirSync(path[, options])同步讀取文件夾
- fs.rmdir(path[, options], callback)異步刪除文件夾
- fs.rmdirSync(path[, options])同步刪除文件夾
fs.mkdir()創(chuàng)建文件夾,當(dāng)文件夾存在的時(shí)候,不可創(chuàng)建
// 異步創(chuàng)建文件夾,
fs.mkdir('./www01',function(err){//對(duì)文件夾異步操作時(shí)只需要err,不需要data,只要告訴我是否創(chuàng)建成功就行了
//callback回調(diào)函數(shù)中錯(cuò)誤的回調(diào)優(yōu)先,意思就是發(fā)生錯(cuò)誤時(shí)不執(zhí)行后面的參數(shù),err本身為null,當(dāng)發(fā)生錯(cuò)誤,打印錯(cuò)誤對(duì)象
console.log(err);
})
// 同步創(chuàng)建文件夾
fs.mkdirSync('./www02');
// 異步讀取文件夾
fs.readdir('../node01',function(err,data){
if(!err){
console.log(err);
console.log(data);
}
})
// 同步讀取文件夾
const data = fs.readdirSync('../node01');
console.log(data);
// 異步修改文件夾
fs.rename('./www02','./hhh',function(err){//對(duì)文件夾修改只需要err,只要告訴我是否修改成功就行了
if(err){
console.log('修改失敗');
throw err
}else{
console.log("修改成功");
}
})
// 同步修改文件夾,當(dāng)我們同步操作文件夾時(shí)發(fā)生錯(cuò)誤,那么程序就會(huì)終止下面的執(zhí)行
// 那肯定不能因?yàn)橐粋€(gè)錯(cuò)誤,將程序終止,所以用trycatch捕獲異常
try {
fs.renameSync('./hhh','./aaa');
} catch (err) {
err;
}
fs.renameSync('./hhh','./aaa');
console.log(2222);
// 異步刪除文件夾
fs.rmdir('./www01',(err)=>{
if(err){
console.log('刪除失敗');
throw err;
}
console.log('刪除成功');
})
// 同步刪除文件夾,文件夾必須是空文件夾
fs.rmdirSync('./aaa');
3.引用內(nèi)置模塊fs之后對(duì)文件的curd使用,及 create創(chuàng)建 update 修改 read 讀取 delete刪除
- 參數(shù)file代指文件名,path代指路徑,data代指文件中的數(shù)據(jù),[options]參數(shù)類(lèi)型,用中括號(hào)包起的可以不填,callback回調(diào)函數(shù),一般只有進(jìn)行異步操作時(shí)才會(huì)用到,###這里需要注意執(zhí)行程序時(shí),異步后行,####下面有舉例
- fs.writeFile(file, data[, options], callback)//異步創(chuàng)建文件
- fs.writeFileSync(file, data[, options])//同步創(chuàng)建文件
- fs.readFile(path[, options], callback)//異步讀取文件
- fs.readFileSync(path[, options])//同步讀取文件
- fs.appendFile(path, data[, options], callback)//異步修改文件內(nèi)容
- fs.appendFileSync(path, data[, options])//同步修改文件內(nèi)容
- fs.unlink(path, callback)//異步刪除文件
- fs.unlinkSync(path)//同步刪除文件
// 創(chuàng)建文件(寫(xiě)入文件)
//異步寫(xiě)入文件
// fs.writeFile('./www/hello1.txt','這是第123個(gè)插入文本日志',(err)=>{
// if(!err){
// console.log(err);
// }
// })
//同步寫(xiě)入文件
// const data = fs.writeFileSync('./www/haha.txt','這是第一個(gè)插入文本日志');
// console.log(data);
//異步讀文件
// console.log(1111);
// fs.readFile('./www/haha.txt','utf8',function(err,data){//先打印222,我們知道程序從上往下執(zhí)行,而讀取文件時(shí)執(zhí)行回調(diào)函數(shù)需要時(shí)間
// if(!err){
// //從文件中讀出的數(shù)據(jù)默認(rèn)是二進(jìn)制數(shù)據(jù) binary
// // 方法一:
// // console.log(data.toString('utf8'));
// //方法二直接在方法中設(shè)置options類(lèi)型
// console.log(data);
// }
// })
// console.log(2222);//先打印222,我們知道程序從上往下執(zhí)行,而讀取文件時(shí)執(zhí)行回調(diào)函數(shù)需要時(shí)間
//同步讀取文件
// const data = fs.readFileSync('./www/hello.txt');
// console.log(data.toString('utf8'))
//異步修改文件也可以是追加內(nèi)容
// fs.appendFile('./www/hello.txt','\n 我們要對(duì)其進(jìn)行修改數(shù)據(jù)',(err)=>{
// if(!err){
// console.log('修改成功');
// }
// });
//同步修改后追加內(nèi)容
// fs.appendFileSync('./www/hello','\n 事說(shuō)'+new Date());
//異步刪除文件
// fs.unlink('./www/hello.txt',(err)=>{
// if(!err){
// console.log('刪除成功')
// }
// })
//同步刪除文件
// fs.unlinkSync('./www/hello1.txt');
版權(quán)聲明:本文為CSDN博主「NanQiao1716」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/NanQiao1716/article/details/104680879