Nodejs 對(duì) 內(nèi)置模塊fs簡(jiǎn)單使用技巧與操作方法,模塊文件夾的curd與文件的curd

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容