NodeJS后端開發(fā)操作文件之讀寫文件
簡(jiǎn)介
操作文件是服務(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方法可以檢測(cè)指定文件是否存在,如果存在就返回true ;否則返回 false 。
總結(jié)
如果你使用NodeJS做后臺(tái),讀寫文件這塊知識(shí)點(diǎn)是逃不過去的。它最常見的功能可以寫日志,比如收集錯(cuò)誤日志等。
日志我們也可以寫在數(shù)據(jù)庫(kù)里,不過不是所有電腦都裝了相同的數(shù)據(jù)庫(kù)。但如果你將日志寫在一個(gè)文件中,文件的內(nèi)容在別的電腦一般都能輕易打開。
到此這篇關(guān)于NodeJS后端開發(fā)操作文件之讀寫文件的文章就介紹到這了,更多相關(guān)NodeJS 讀寫文件 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
node.js支持多用戶web終端實(shí)現(xiàn)及安全方案
這篇文章主要介紹了node.js支持多用戶web終端實(shí)現(xiàn)方案以及web終端安全性保證的解決方法,一起學(xué)習(xí)參考下。2017-11-11
nestjs搭建HTTP與WebSocket服務(wù)詳細(xì)過程
這篇文章主要介紹了nestjs搭建HTTP與WebSocket服務(wù)詳細(xì)過程的相關(guān)資料,需要的朋友可以參考下2022-11-11
webstorm配置支持nodejs并自動(dòng)補(bǔ)全的方法
今天小編就為大家分享一篇webstorm配置支持nodejs并自動(dòng)補(bǔ)全的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
詳解從買域名到使用pm2部署node.js項(xiàng)目全過程
本篇文章主要介紹了詳解從買域名到使用pm2部署node.js項(xiàng)目全過程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
使用NODE.JS創(chuàng)建一個(gè)WEBSERVER(服務(wù)器)的步驟
在 node.js 中創(chuàng)建一個(gè)服務(wù)器非常簡(jiǎn)單,只需要使用 node.js 為我們提供的 http 模塊及相關(guān) API 即可創(chuàng)建一個(gè)麻雀雖小但五臟俱全的web 服務(wù)器,相比 Java/Python/Ruby 搭建web服務(wù)器的過程簡(jiǎn)單的很。本文簡(jiǎn)單的講解下實(shí)現(xiàn)步驟2021-06-06
輕松創(chuàng)建nodejs服務(wù)器(7):阻塞操作的實(shí)現(xiàn)
這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(7):阻塞操作的實(shí)現(xiàn),本文先是組出了代碼,然后對(duì)代碼一一分析,需要的朋友可以參考下2014-12-12
node將對(duì)象轉(zhuǎn)化為query的實(shí)現(xiàn)方法
本文主要介紹了node將對(duì)象轉(zhuǎn)化為query的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法
本篇文章主要介紹了node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09

