總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí))
本文主要介紹了Node.js
常用的文件操作方法,以及常見的處理場景,文件追加,文件夾遞歸刪除等。
一、前言
- fs.mkdir()
- fs.writeFile()
- fs.appendFile()
- fs.stat()fs.readFile()
- fs.readdir()
- fs.rename()
- fs.unlink()
- fs.rmdir()
二、fs.mkdir()創(chuàng)建文件夾
異步的創(chuàng)建一個(gè)文件夾:
語法:
fs.mkdir(path[,options],callback) /** * path <string> | <Buffer> | <URL> * options <Object> | <integer> * recursive <boolean> 默認(rèn)值: false * mode <string> | <integer> Windows 上不支持。 默認(rèn)值: 0o777。 * callback <Function> * err <Error> * path <string> | <undefined> 僅當(dāng)創(chuàng)建目錄時(shí)將 recursive 設(shè)置為 true。 */
2.1 最簡單的案例
最簡單的案例,在當(dāng)前目錄下創(chuàng)建一個(gè)temp
文件夾:
const fs = require('fs') fs.mkdir('./temp',(err)=>{ if(err){ console.log(err.message) return } console.log('創(chuàng)建文件夾成功') })
代碼執(zhí)行結(jié)果:
2.2 遞歸創(chuàng)建文件夾
使用參數(shù){recursive:true}
創(chuàng)建多層次的文件夾。
fs.mkdir('./parent/son/grandson',{recursive:true},(err,path)=>{ if(err){ console.log(err.message) return } console.log('遞歸創(chuàng)建文件夾成功',path) })
代碼執(zhí)行結(jié)果:
注意: 在使用{recursive:true}
參數(shù)時(shí),回調(diào)對(duì)應(yīng)的會(huì)增加一個(gè)path
參數(shù),其他情況下沒有。
三、fs.wirteFile()創(chuàng)建、寫文件
當(dāng) file
是文件名時(shí),將數(shù)據(jù)異步地寫入文件,如果文件已存在則替換該文件。 data
可以是字符串或緩沖區(qū)。
當(dāng) file
是文件描述符時(shí),其行為類似于直接調(diào)用 fs.write()
(本文不涉及這種情況)。
語法:
fs.writeFile(file, data[, options], callback) /** * file <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符 * data <string> | <Buffer> | <TypedArray> | <DataView> | <Object> * options <Object> | <string> * encoding <string> | <null> 默認(rèn)值: 'utf8' * mode <integer> 默認(rèn)值: 0o666 * flag <string> 請(qǐng)參閱對(duì)文件系統(tǒng) flags 的支持。 默認(rèn)值: 'w'。 * signal <AbortSignal> 允許中止正在進(jìn)行的寫入文件 * callback <Function> * err <Error> | <AggregateError> */
3.1 創(chuàng)建并寫入一個(gè)文件
創(chuàng)建一個(gè)名為index.html
的文件,并寫入一行字符串。
fs.writeFile('./index.html',"<h1>你好,中國</h1>",(err)=>{ if(err){ console.log(err.message) return } console.log("創(chuàng)建寫入文件成功") })
代碼執(zhí)行結(jié)果如下:
3.2 重寫文件并指定編碼
重寫index.html
,并為文件指定編碼:
fs.writeFile('./index.html','<h2>面朝大海,春暖花開</h2>','utf-8',(err)=>{ if(err){ console.log(err.message) return } console.log('寫入指定格式文件成功') })
代碼執(zhí)行效果如下:
原文件內(nèi)容被覆蓋。
3.3 寫入GBK格式的文件
Node.js
僅支持utf8 ucs2 ascii binary base64 hex
這幾種格式,對(duì)于GBK
,GB2312
等特殊格式需要使用額外的庫(這里使用iconv-lite
)。
案例:
const iconv = require('iconv-lite') fs.writeFile('./style.css',iconv.encode('面朝大海,春暖花開','gbk'),(err)=>{ if(err){ console.log(err.message) return } console.log("以GBK格式寫入成功") })
代碼執(zhí)行結(jié)果:
注意底部的編碼格式,如果使用utf-8
打開文件會(huì)亂碼的呦!
四、fs.appendFile()文件后追加內(nèi)容
異步地將數(shù)據(jù)追加到文件,如果該文件尚不存在,則創(chuàng)建該文件。
語法:
fs.appendFile(path, data[, options], callback) /** * path <string> | <Buffer> | <URL> | <number> 文件名或文件描述符 * data <string> | <Buffer> * options <Object> | <string> * encoding <string> | <null> 默認(rèn)值: 'utf8' * mode <integer> 默認(rèn)值: 0o666 * flag <string> 請(qǐng)參閱對(duì)文件系統(tǒng) flags 的支持。 默認(rèn)值: 'a'。 * callback <Function> * err <Error> */
4.1 使用追加的方式創(chuàng)建并寫入內(nèi)容
fs.appendFile('./test.txt', '測(cè)試寫入', (err) => { if (err) { console.log(err.message) return } console.log("使用追加的方式創(chuàng)建并寫入文件") })
代碼執(zhí)行結(jié)果:
4.2 追加內(nèi)容
fs.appendFile('./test.txt', "\n追加測(cè)試", (err) => { if (err) { console.log(err.message) return } console.log('在已經(jīng)存在的文件中追加內(nèi)容') })
代碼執(zhí)行結(jié)果:
五、fs.stat()判斷路徑是目錄還是文件
判斷路徑是文件還是目錄。
語法:
fs.stat(path[, options], callback) /** * path <string> | <Buffer> | <URL> * options <Object> * bigint <boolean> 返回的 <fs.Stats> 對(duì)象中的數(shù)值是否應(yīng)為 bigint。 默認(rèn)值: false。 * callback <Function> * err <Error> * stats <fs.Stats> */
5.1 判斷文件案例
判斷index.html
是文件還是目錄。
fs.stat('./index.html',(err,stats)=>{ if(err){ console.log(err.message) return } console.log(`./index.html是文件:${stats.isFile()}`) console.log(`./index.html是目錄:${stats.isDirectory()}`) })
代碼執(zhí)行效果:
六、fs.readFile()讀取文件內(nèi)容
異步地讀取文件的全部內(nèi)容。
語法:
fs.stat('./index.html',(err,stats)=>{ if(err){ console.log(err.message) return } console.log(`./index.html是文件:${stats.isFile()}`) console.log(`./index.html是目錄:${stats.isDirectory()}`) })
6.1 以默認(rèn)格式讀取文件
以默認(rèn)的格式(utf-8
)讀取文件內(nèi)容:
fs.readFile('./index.html',(err,data)=>{ if(err){ console.log(err.message) return } console.log(`讀取文件成功,文件內(nèi)容是:\n${data}`) })
代碼執(zhí)行結(jié)果:
如果要讀取的文件不是utf-8
格式,就會(huì)出現(xiàn)亂碼,這時(shí)就需要指定讀取格式。
6.2 以指定格式(這里是GBK)讀取文件
遺憾的是,node.js
不支持除了utf8 ucs2 ascii binary base64 hex
之外的編碼,我們需要使用額外的包(iconv-lite
)讀取GBK
文件:
const iconv = require('iconv-lite') fs.readFile('./index.html',(err,data)=>{ if(err){ console.log(err.message) return } console.log(`讀取文件成功,文件內(nèi)容是:\n${data}`) console.log("讀取文件成功,文件內(nèi)容是:\n",iconv.decode(data,'gbk')) })
代碼執(zhí)行結(jié)果如下:
七、fs.readdir()讀取文件夾中的內(nèi)容
讀取目錄的內(nèi)容。 回調(diào)有兩個(gè)參數(shù) (err, files)
,其中 files
是目錄中文件名的數(shù)組,不包括 '.'
和 '..'
。
語法:
fs.readdir(path[, options], callback) /** * path <string> | <Buffer> | <URL> * options <string> | <Object> * encoding <string> 默認(rèn)值: 'utf8' * withFileTypes <boolean> 默認(rèn)值: false * callback <Function> * err <Error> * files <string[]> | <Buffer[]> | <fs.Dirent[]> */
7.1 讀取文件夾案例
讀取當(dāng)前文件夾下所有的文件。
fs.readdir('./',(err,files)=>{ if(err){ console.log(err.message) return } console.log(files) })
代碼執(zhí)行結(jié)果:
PS D:\Code\Study\Node\demos> node .\01-fs.js
[
'01-fs.js',
'index.html',
'node_modules',
'package-lock.json',
'package.json',
'style.css',
'temp'
]
7.2 獲取文件類型
我們可以在讀取文件列表的時(shí)候,獲取文件的類型。
fs.readdir('./',{withFileTypes:true},(err,files)=>{ if(err){ console.log(err.message) return } console.log(files) })
代碼執(zhí)行結(jié)果:
PS D:\Code\Study\Node\demos> node .\01-fs.js
[
Dirent { name: '01-fs.js', [Symbol(type)]: 1 },
Dirent { name: 'index.html', [Symbol(type)]: 1 },
Dirent { name: 'node_modules', [Symbol(type)]: 2 },
Dirent { name: 'package-lock.json', [Symbol(type)]: 1 },
Dirent { name: 'package.json', [Symbol(type)]: 1 },
Dirent { name: 'style.css', [Symbol(type)]: 1 },
Dirent { name: 'temp', [Symbol(type)]: 2 }
]
八、fs.raname()重命名、移動(dòng)文件
將 oldPath
處的文件異步重命名為作為 newPath
提供的路徑名。 如果 newPath
已經(jīng)存在,則它將被覆蓋。 如果在 newPath
中有目錄,則會(huì)引發(fā)錯(cuò)誤。 除了可能的異常之外,沒有為完成回調(diào)提供任何參數(shù)。
fs.rename(oldPath, newPath, callback) /** * oldPath <string> | <Buffer> | <URL> * newPath <string> | <Buffer> | <URL> * callback <Function> * err <Error> */
8.1 重命名文件
將index.html
重命名為main.html
。
fs.rename('./index.html', './main.html', (err) => { if (err) { console.log(err.message) return } console.log('重命名成功') })
代碼執(zhí)行結(jié)果:
PS E:\Code\Node\demos> node .\01-fs.js
重命名成功
PS E:\Code\Node\demos> ls目錄: E:\Code\Node\demos
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/7/4 18:43 node_modules
da---- 2022/7/4 17:33 temp
-a---- 2022/7/4 19:48 6210 01-fs.js
-a---- 2022/7/4 16:23 27 main.html (*)
-a---- 2022/7/4 16:58 1455 package-lock.json
-a---- 2022/7/4 16:57 55 package.json
-a---- 2022/7/4 17:05 18 style.css
-a---- 2022/7/4 19:40 12 test.txt
8.2 移動(dòng)文件
將./main.html
移動(dòng)到./temp/main.html
。
fs.rename('./main.html', './temp/main.html', (err) => { if (err) { console.log(err.message) return } console.log('移動(dòng)文件成功') })
代碼執(zhí)行結(jié)果:
PS E:\Code\Node\demos> node .\01-fs.js
移動(dòng)文件成功
PS E:\Code\Node\demos> ls .\temp\目錄: E:\Code\Node\demos\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2022/7/4 16:23 27 main.htmlPS E:\Code\Node\demos>
九、fs.unlink()刪除文件
異步地刪除文件或符號(hào)鏈接。 除了可能的異常之外,沒有為完成回調(diào)提供任何參數(shù)。
9.1 刪除文件案例
fs.unlink('./temp/main.html', (err) => { if (err) { console.log(err.message) return } console.log("刪除文件成功") })
代碼執(zhí)行結(jié)果:
PS E:\Code\Node\demos> ls .\temp\
目錄: E:\Code\Node\demos\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2022/7/4 20:03 0 main.htmlPS E:\Code\Node\demos> node .\01-fs.js
刪除文件成功
PS E:\Code\Node\demos> ls .\temp\
PS E:\Code\Node\demos>
十、fs.rmdir()刪除文件夾
刪除指定路徑的文件夾。
語法:
fs.rmdir(path[, options], callback) /** * path <string> | <Buffer> | <URL> * options <Object> * maxRetries <integer> 如果遇到 EBUSY、EMFILE、ENFILE、ENOTEMPTY 或 EPERM 錯(cuò)誤, * Node.js 將在每次嘗試時(shí)以 retryDelay 毫秒的線性退避等待時(shí)間重試該操作。 * 此選項(xiàng)表示重試次數(shù)。 如果 recursive 選項(xiàng)不為 true,則忽略此選項(xiàng)。 默認(rèn)值: 0。 * recursive <boolean> 如果為 true,則執(zhí)行遞歸目錄刪除。 在遞歸模式下,操作將在失敗時(shí)重試。 默認(rèn)值: false。 已棄用。 * retryDelay <integer> 重試之間等待的時(shí)間(以毫秒為單位)。 如果 recursive 選項(xiàng)不為 true,則忽略此選項(xiàng)。 默認(rèn)值: 100。 * callback <Function> * err <Error> */
10.1 刪除空的文件夾
刪除./temp
文件夾。
fs.rmdir('./temp', (err) => { if (err) { console.log(err.message) return } console.log('刪除空的文件夾') })
代碼執(zhí)行結(jié)果:
PS E:\Code\Node\demos> ls .
目錄: E:\Code\Node\demos
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/7/4 18:43 node_modules
da---- 2022/7/4 20:03 temp
-a---- 2022/7/4 20:09 7666 01-fs.js
-a---- 2022/7/4 16:58 1455 package-lock.json
-a---- 2022/7/4 16:57 55 package.json
-a---- 2022/7/4 17:05 18 style.css
-a---- 2022/7/4 19:40 12 test.txtPS E:\Code\Node\demos> node .\01-fs.js
刪除空的文件夾
PS E:\Code\Node\demos> ls目錄: E:\Code\Node\demos
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022/7/4 18:43 node_modules
-a---- 2022/7/4 20:09 7666 01-fs.js
-a---- 2022/7/4 16:58 1455 package-lock.json
-a---- 2022/7/4 16:57 55 package.json
-a---- 2022/7/4 17:05 18 style.css
-a---- 2022/7/4 19:40 12 test.txt
10.2 刪除非空的文件夾
這里使用的是同步的文件處理函數(shù),用于遞歸的刪除文件夾。
function emptyDir(path) { const files = fs.readdirSync(path); //同步讀取文件夾 files.forEach(file => { //刪除文件夾中的所有文件/夾 const filePath = `${path}/${file}`; const stats = fs.statSync(filePath); if (stats.isDirectory()) { emptyDir(filePath); } else { fs.unlinkSync(filePath); console.log(`刪除${file}文件成功`); } }); fs.rmdirSync(path) //刪除文件夾 } emptyDir('./node_modules')
代碼執(zhí)行結(jié)果:
PS E:\Code\Node\demos> node .\01-fs.js
刪除.package-lock.json文件成功
刪除dependabot.yml文件成功
刪除codeStyleConfig.xml文件成功
刪除Project.xml文件成功
刪除iconv-lite.iml文件成功
... ...
十一、總結(jié)
本文總結(jié)了Node.js
常用的文件操作方法,以及常見的文件處理場景。
主要包括:
- fs.mkdir()
- fs.writeFile()
- fs.appendFile()
- fs.stat()fs.readFile()
- fs.readdir()
- fs.rename()
- fs.unlink()
- fs.rmdir()
十二、本文源碼
/** * fs.mkdir(path[,options],callback) * path <string> | <Buffer> | <URL> * options <Object> | <integer> * recursive <boolean> 默認(rèn)值: false * mode <string> | <integer> Windows 上不支持。 默認(rèn)值: 0o777。 * callback <Function> * err <Error> * path <string> | <undefined> 僅當(dāng)創(chuàng)建目錄時(shí)將 recursive 設(shè)置為 true。 */ const fs = require('fs') // 1. 最簡單的測(cè)試案例 // fs.mkdir('./temp',(err)=>{ // if(err){ // console.log(err.message) // return // } // console.log('創(chuàng)建文件夾成功') // }) // 2. 遞歸創(chuàng)建文件夾 // fs.mkdir('./parent/son/grandson',{recursive:true},(err,path)=>{ // if(err){ // console.log(err.message) // return // } // console.log('遞歸創(chuàng)建文件夾成功',path) // }) /**-------------------------------------------------------------------------------------- */ /**-------------------------------------------------------------------------------------- */ /**-------------------------------------------------------------------------------------- */ /** * fs.writeFile(file, data[, options], callback) * file <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符 * data <string> | <Buffer> | <TypedArray> | <DataView> | <Object> * options <Object> | <string> * encoding <string> | <null> 默認(rèn)值: 'utf8' * mode <integer> 默認(rèn)值: 0o666 * flag <string> 請(qǐng)參閱對(duì)文件系統(tǒng) flags 的支持。 默認(rèn)值: 'w'。 * signal <AbortSignal> 允許中止正在進(jìn)行的寫入文件 * callback <Function> * err <Error> | <AggregateError> */ // 1. 創(chuàng)建并寫入一個(gè)文件 // fs.writeFile('./index.html',"<h1>你好,中國</h1>",(err)=>{ // if(err){ // console.log(err.message) // return // } // console.log("創(chuàng)建寫入文件成功") // }) // 2. 指定文件格式 // fs.writeFile('./index.html','<h2>面朝大海,春暖花開</h2>','utf-8',(err)=>{ // if(err){ // console.log(err.message) // return // } // console.log('寫入指定格式文件成功') // }) // 3. 寫gbk文件 // const iconv = require('iconv-lite') // fs.writeFile('./style.css',iconv.encode('面朝大海,春暖花開','gbk'),(err)=>{ // if(err){ // console.log(err.message) // return // } // console.log("以GBK格式寫入成功") // }) /** * fs.appendFile(path, data[, options], callback) * path <string> | <Buffer> | <URL> | <number> 文件名或文件描述符 * data <string> | <Buffer> * options <Object> | <string> * encoding <string> | <null> 默認(rèn)值: 'utf8' * mode <integer> 默認(rèn)值: 0o666 * flag <string> 請(qǐng)參閱對(duì)文件系統(tǒng) flags 的支持。 默認(rèn)值: 'a'。 * callback <Function> * err <Error> */ // 1. 創(chuàng)建文件并寫入內(nèi)容 // fs.appendFile('./test.txt', '測(cè)試寫入', (err) => { // if (err) { // console.log(err.message) // return // } // console.log("使用追加的方式創(chuàng)建并寫入文件") // }) // 2. 追加內(nèi)容 // fs.appendFile('./test.txt', "\n追加測(cè)試", (err) => { // if (err) { // console.log(err.message) // return // } // console.log('在已經(jīng)存在的文件中追加內(nèi)容') // }) /** =============================================================================== */ /** * fs.stat(path[, options], callback) * path <string> | <Buffer> | <URL> * options <Object> * bigint <boolean> 返回的 <fs.Stats> 對(duì)象中的數(shù)值是否應(yīng)為 bigint。 默認(rèn)值: false。 * callback <Function> * err <Error> * stats <fs.Stats> */ // 1. 判斷路徑是目錄還是文件 // fs.stat('./index.html',(err,stats)=>{ // if(err){ // console.log(err.message) // return // } // console.log(`./index.html是文件:${stats.isFile()}`) // console.log(`./index.html是目錄:${stats.isDirectory()}`) // }) /** * fs.readFile(path[, options], callback) * path <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符 * options <Object> | <string> * encoding <string> | <null> 默認(rèn)值: null * flag <string> 請(qǐng)參閱對(duì)文件系統(tǒng) flags 的支持。 默認(rèn)值: 'r'。 * signal <AbortSignal> 允許中止正在進(jìn)行的讀取文件 * callback <Function> * err <Error> | <AggregateError> * data <string> | <Buffer> */ // 1. 讀取文件內(nèi)容 // fs.readFile('./index.html',(err,data)=>{ // if(err){ // console.log(err.message) // return // } // console.log(`讀取文件成功,文件內(nèi)容是:\n${data}`) // }) // 2. 以指定格式讀取文件 // const iconv = require('iconv-lite') // fs.readFile('./index.html',(err,data)=>{ // if(err){ // console.log(err.message) // return // } // console.log(`讀取文件成功,文件內(nèi)容是:\n${data}`) // console.log("讀取文件成功,文件內(nèi)容是:\n",iconv.decode(data,'gbk')) // }) /**================================================================================ */ /** * fs.readdir(path[, options], callback) * path <string> | <Buffer> | <URL> * options <string> | <Object> * encoding <string> 默認(rèn)值: 'utf8' * withFileTypes <boolean> 默認(rèn)值: false * callback <Function> * err <Error> * files <string[]> | <Buffer[]> | <fs.Dirent[]> * */ // 1. 讀取當(dāng)前目錄下所有的文件 // fs.readdir('./',(err,files)=>{ // if(err){ // console.log(err.message) // return // } // console.log(files) // }) // 2. 獲取文件類型 // fs.readdir('./', { withFileTypes: true }, (err, files) => { // if (err) { // console.log(err.message) // return // } // console.log(files) // }) /** * fs.rename(oldPath, newPath, callback) * oldPath <string> | <Buffer> | <URL> * newPath <string> | <Buffer> | <URL> * callback <Function> * err <Error> */ // fs.rename('./index.html', './main.html', (err) => { // if (err) { // console.log(err.message) // return // } // console.log('重命名成功') // }) // fs.rename('./main.html', './temp/main.html', (err) => { // if (err) { // console.log(err.message) // return // } // console.log('移動(dòng)文件成功') // }) /** * fs.unlink(path, callback) * path <string> | <Buffer> | <URL> * callback <Function> * err <Error> */ // fs.unlink('./temp/main.html', (err) => { // if (err) { // console.log(err.message) // return // } // console.log("刪除文件成功") // }) /** * fs.rmdir(path[, options], callback) * path <string> | <Buffer> | <URL> * options <Object> * maxRetries <integer> 如果遇到 EBUSY、EMFILE、ENFILE、ENOTEMPTY 或 EPERM 錯(cuò)誤, * Node.js 將在每次嘗試時(shí)以 retryDelay 毫秒的線性退避等待時(shí)間重試該操作。 * 此選項(xiàng)表示重試次數(shù)。 如果 recursive 選項(xiàng)不為 true,則忽略此選項(xiàng)。 默認(rèn)值: 0。 * recursive <boolean> 如果為 true,則執(zhí)行遞歸目錄刪除。 在遞歸模式下,操作將在失敗時(shí)重試。 默認(rèn)值: false。 已棄用。 * retryDelay <integer> 重試之間等待的時(shí)間(以毫秒為單位)。 如果 recursive 選項(xiàng)不為 true,則忽略此選項(xiàng)。 默認(rèn)值: 100。 * callback <Function> * err <Error> */ // fs.rmdir('./temp', (err) => { // if (err) { // console.log(err.message) // return // } // console.log('刪除空的文件夾') // }) function emptyDir(path) { const files = fs.readdirSync(path); //同步讀取文件夾 files.forEach(file => { //刪除文件夾中的所有文件/夾 const filePath = `${path}/${file}`; const stats = fs.statSync(filePath); if (stats.isDirectory()) { emptyDir(filePath); } else { fs.unlinkSync(filePath); console.log(`刪除${file}文件成功`); } }); fs.rmdirSync(path) //刪除文件夾 } emptyDir('./node_modules')
到此這篇關(guān)于總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識(shí))的文章就介紹到這了,更多相關(guān)Node.js fs模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Node.js?內(nèi)置模塊fs文件系統(tǒng)操作示例詳解
- Node.js?操作本地文件及深入了解fs內(nèi)置模塊
- Node.js中fs模塊的使用方法
- node.js-fs文件系統(tǒng)模塊這是你知道嗎
- Node.js 中的 fs 模塊與Path模塊方法詳解
- Node.js中文件系統(tǒng)fs模塊的使用及常用接口
- Node.js fs模塊(文件模塊)創(chuàng)建、刪除目錄(文件)讀取寫入文件流的方法
- node.js基于fs模塊對(duì)系統(tǒng)文件及目錄進(jìn)行讀寫操作的方法詳解
- 淺談Node.js:fs文件系統(tǒng)模塊
- Node.js?中?fs?模塊的高級(jí)用法實(shí)例詳解
相關(guān)文章
Node.js API詳解之 module模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 module模塊用法,結(jié)合實(shí)例形式分析了Node.js API中module模塊基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05在node.js中怎么屏蔽掉favicon.ico的請(qǐng)求
這篇文章主要介紹了在node.js中怎么屏蔽掉favicon.ico的請(qǐng)求,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03nodejs檢測(cè)因特網(wǎng)是否斷開的解決方案
這篇文章主要給大家介紹了關(guān)于nodejs如何檢測(cè)因特網(wǎng)是否斷開的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用nodejs具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04webstorm中配置nodejs環(huán)境及npm的實(shí)例
今天小編就為大家分享一篇webstorm中配置nodejs環(huán)境及npm的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05nodejs 整合kindEditor實(shí)現(xiàn)圖片上傳
這篇文章主要介紹了nodejs 整合kindEditor實(shí)現(xiàn)圖片上傳,需要的朋友可以參考下2015-02-02