NodeJS后端開發(fā)操作文件之讀寫文件
簡介
操作文件是服務(wù)端一個(gè)基礎(chǔ)的功能,也是做后端開發(fā)的必備能力之一。操作文件主要包括讀和寫。而這些功能 NodeJS 都已經(jīng)提供了對(duì)應(yīng)的方法。只要調(diào)用就行了。
創(chuàng)建文件夾
同步方法:
const fs = require('fs')
fs.mkdirSync(`${__dirname}/雷猴`)NodeJS有一個(gè)文件模塊,叫fs 。對(duì)文件操作的話,必須先引入這個(gè)模塊。
使用fs.mkdirSync方法可以創(chuàng)建一個(gè)文件夾。里面?zhèn)魅胍獎(jiǎng)?chuàng)建的文件夾的名字即可。
__dirname指的是當(dāng)前文件所在文件夾的絕對(duì)路徑。
異步創(chuàng)建:
const fs = require('fs')
fs.mkdir(`${__dirname}/雷猴`, err => {
if (err) {
console.error(err)
}
})使用fs.mkdir方法可以進(jìn)行異步創(chuàng)建,第一個(gè)參數(shù)也是文件夾名稱,第二個(gè)是回到函數(shù),該函數(shù)里有一個(gè)err參數(shù),可以返回錯(cuò)誤信息。
刪除文件
創(chuàng)建完文件夾,本來是想講 “刪除文件夾” 的。但由于刪除文件夾之前要清空里面所有文件,所以就把 刪除文件 的用法放在前面講。
刪除文件分 同步 和 異步 兩種方法。
同步 fs.unlinkSync:
const fs = require('fs')
fs.unlinkSync(`${__dirname}/test.txt`);fs.unlinkSync里傳入要?jiǎng)h除的文件路徑和文件名,即可刪除指定文件。
異步 fs.unlink:
const fs = require('fs')
fs.unlink(`${__dirname}/test.txt`, err => {
if (err) {
console.error(err)
}
})fs.unlink方法有2個(gè)參數(shù),第一個(gè)參數(shù)是文件路徑和文件名,第二個(gè)參數(shù)是監(jiān)聽刪除失敗的回調(diào)函數(shù)。
刪除文件夾
刪除文件夾之前要清空目標(biāo)文件夾里的所有文件。 可以使用fs.unlinkSync或fs.unlink刪除文件。
同步:
const fs = require('fs')
fs.rmdirSync(`${__dirname}/雷猴`)異步:
const fs = require('fs')
fs.rmdir(`${__dirname}/雷猴`, err => {
if (err) {
console.error(err)
}
})和刪除文件的用法差不多,刪除文件夾的方法也有同步和異步,異步接受2個(gè)參數(shù),第二個(gè)參數(shù)同樣是監(jiān)聽報(bào)錯(cuò)的回調(diào)。
寫入數(shù)據(jù)
const fs = require('fs')
const content = ' 雷猴雷猴\n'
const opt = {
flag: 'a', // a:追加寫入;w:覆蓋寫入
}
fs.writeFile('test.txt', content, opt, (err) => {
if (err) {
console.error(err)
}
})fs.writeFile方法可以將內(nèi)容寫入文件中。如果文件不存在,會(huì)自動(dòng)創(chuàng)建文件。
fs.writeFile參數(shù)說明:
- 第一個(gè)參數(shù):文件名
- 第二個(gè)參數(shù):寫入的內(nèi)容
- 第三個(gè)參數(shù):寫入模式(追加、覆蓋等)
- 第四個(gè)參數(shù):錯(cuò)誤信息監(jiān)聽
讀取數(shù)據(jù)
const fs = require('fs')
fs.readFile('fileName', (err, data) => {
if (err) {
console.error(err)
return
}
// data 是二進(jìn)制類型,需要轉(zhuǎn)換成字符串
console.log(data.toString())
})使用fs.readFile方法可以讀取數(shù)據(jù),第一個(gè)參數(shù)是文件名;第二個(gè)參數(shù)是回調(diào),err監(jiān)聽錯(cuò)誤信息,data是讀取回來的數(shù)據(jù)。
需要注意的是,讀取回來的data是一個(gè)二進(jìn)制類型的數(shù)據(jù),需要使用toString()方法轉(zhuǎn)換成我們讀得懂的數(shù)據(jù)。
檢查文件是否存在
const fs = require('fs')
const exist = fs.existsSync('fileName')
console.log(exist)使用fs.existsSync方法可以檢測指定文件是否存在,如果存在就返回true ;否則返回 false 。
總結(jié)
如果你使用NodeJS做后臺(tái),讀寫文件這塊知識(shí)點(diǎn)是逃不過去的。它最常見的功能可以寫日志,比如收集錯(cuò)誤日志等。
日志我們也可以寫在數(shù)據(jù)庫里,不過不是所有電腦都裝了相同的數(shù)據(jù)庫。但如果你將日志寫在一個(gè)文件中,文件的內(nèi)容在別的電腦一般都能輕易打開。
到此這篇關(guān)于NodeJS后端開發(fā)操作文件之讀寫文件的文章就介紹到這了,更多相關(guān)NodeJS 讀寫文件 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
node.js+express留言板功能實(shí)現(xiàn)示例
本文介紹基于nodejs+express+art-template的留言板功能。包含列表界面、添加界面和發(fā)送留言功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
學(xué)習(xí)使用grunt來打包JavaScript和CSS程序的教程
這篇文章主要介紹了學(xué)習(xí)使用grunt來打包JavaScript和CSS程序的教程,grunt基于node.js和需要的朋友可以參考下2016-01-01
node.js中實(shí)現(xiàn)GET和POST請(qǐng)求的代碼示例
在很多場景中,我們的服務(wù)器都需要跟用戶的瀏覽器打交道,如發(fā)送驗(yàn)證碼、登錄表單提交,請(qǐng)求服務(wù)器數(shù)據(jù)一般都使用GET請(qǐng)求,表單提交到服務(wù)器一般都使用POST請(qǐng)求,本文詳細(xì)介紹了在Node.js中如何處理GET和POST請(qǐng)求,需要的朋友可以參考下2024-12-12
nodejs做個(gè)爬蟲爬取騰訊動(dòng)漫內(nèi)容簡單實(shí)現(xiàn)
這篇文章主要為大家介紹了nodejs做個(gè)爬蟲爬取騰訊動(dòng)漫內(nèi)容簡單實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
nodejs連接mysql數(shù)據(jù)庫及基本知識(shí)點(diǎn)詳解
這篇文章主要介紹了nodejs連接mysql數(shù)據(jù)庫,結(jié)合實(shí)例形式總結(jié)分析了nodejs連接與操作mysql數(shù)據(jù)庫的相關(guān)模板、配置及mysql數(shù)據(jù)庫查詢、添加數(shù)據(jù)等操作技巧,需要的朋友可以參考下2018-03-03
詳解Node.js?應(yīng)用高?CPU?占用率分析方法
這篇文章主要為大家介紹了Node.js?應(yīng)用高?CPU?占用率分析方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10

