Node.js復(fù)制文件的方法示例
本文實(shí)例講述了Node.js復(fù)制文件的方法。分享給大家供大家參考,具體如下:
本人開(kāi)發(fā)過(guò)程中,經(jīng)常遇到,要去拷貝模板到當(dāng)前文件夾,經(jīng)常要去托文件,為了省事,解決這個(gè)問(wèn)題,寫(xiě)了一個(gè)node復(fù)制文件。
// js/app.js:指定確切的文件名。 // js/*.js:某個(gè)目錄所有后綴名為js的文件。 // js/**/*.js:某個(gè)目錄及其所有子目錄中的所有后綴名為js的文件。 // !js/app.js:除了js/app.js以外的所有文件。 // *.+(js|css):匹配項(xiàng)目根目錄下,所有后綴名為js或css的文件。 //流 stream 管道 pipe 管道 //如果想在讀取流和寫(xiě)入流的時(shí)候做完全的控制,可以使用數(shù)據(jù)事件。但對(duì)于單純的文件復(fù)制來(lái)說(shuō)讀取流和寫(xiě)入流可以通過(guò)管道來(lái)傳輸數(shù)據(jù)。 var fs = require("fs"); var path = require("path"); /* * 復(fù)制目錄中的所有文件包括子目錄 * @src param{ String } 需要復(fù)制的目錄 例 images 或者 ./images/ * @dst param{ String } 復(fù)制到指定的目錄 例 images images/ */ //獲取當(dāng)前目錄絕對(duì)路徑,這里resolve()不傳入?yún)?shù) var filePath = path.resolve(); var copy = function(src,dst){ //判斷文件需要時(shí)間,則必須同步 if(fs.existsSync(src)){ fs.readdir(src,function(err,files){ if(err){console.log(err);return;} files.forEach(function(filename){ //url+"/"+filename不能用/直接連接,Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“ var url = path.join(src,filename), dest = path.join(dst,filename); console.log(url); console.log(dest); fs.stat(path.join(src,filename),function(err, stats){ if (err) throw err; //是文件 if(stats.isFile()){ //創(chuàng)建讀取流 readable = fs.createReadStream(url); //創(chuàng)建寫(xiě)入流 writable = fs.createWriteStream(dest,{ encoding: "utf8" }); // 通過(guò)管道來(lái)傳輸流 readable.pipe(writable); //如果是目錄 }else if(stats.isDirectory()){ exists( url, dest, copy ); } }); }); }); }else{ console.log("給定的目錄不存,讀取不到文件"); return; } } function exists(url,dest,callback){ fs.exists(dest,function(exists){ if(exists){ callback && callback(url,dest); }else{ //第二個(gè)參數(shù)目錄權(quán)限 ,默認(rèn)0777(讀寫(xiě)權(quán)限) fs.mkdir(dest,0777,function(err){ if (err) throw err; callback && callback(url,dest); }); } }); } exports.copy = copy; //copy("./views/","./www/"); copy("./../jdcase/homeappliances/",filePath);
希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。
相關(guān)文章
nodejs密碼加密中生成隨機(jī)數(shù)的實(shí)例代碼
本篇文章主要介紹了nodejs密碼加密中生成隨機(jī)數(shù)的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實(shí)例(帶跨域)
這篇文章主要介紹了nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實(shí)例(帶跨域) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07nodejs使用express獲取get和post傳值及session驗(yàn)證的方法
這篇文章主要介紹了nodejs使用express獲取get和post傳值及session驗(yàn)證的方法,結(jié)合實(shí)例形式分析了nodejs使用express實(shí)現(xiàn)獲取get和post傳值及session驗(yàn)證功能的具體操作步驟與注意事項(xiàng),需要的朋友可以參考下2017-11-11npm?install安裝失敗常見(jiàn)問(wèn)題的解決辦法小結(jié)
有時(shí)候前端安裝npm install 安裝包總是安裝不上,下面這篇文章主要給大家介紹了關(guān)于npm?install安裝失敗常見(jiàn)問(wèn)題的解決辦法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05nodejs實(shí)現(xiàn)OAuth2.0授權(quán)服務(wù)認(rèn)證
本篇文章主要介紹了nodejs實(shí)現(xiàn)OAuth2.0授權(quán)服務(wù)認(rèn)證,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12node?NPM庫(kù)增強(qiáng)版globby?Promise使用學(xué)習(xí)
這篇文章主要為大家介紹了node?NPM庫(kù)增強(qiáng)版globby?Promise使用學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Koa2中間件的作用及路由實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了Koa2中間件的作用及路由實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05node.js文件系統(tǒng)模塊和兩個(gè)重要模塊
這篇文章主要介紹了node.js文件系統(tǒng)模塊和兩個(gè)重要模塊,nodejs是JavaScript的后端運(yùn)行環(huán)境,并對(duì)node.js的fs文件系統(tǒng)模塊做了簡(jiǎn)單的介紹,需要的小伙伴可以參考一下2022-06-06