這篇文章帶大家了解一下node中的fs檔案系統模組和path路徑模組,希望對大家有幫助!
#fs 模組是Node.js 官方提供的、用來操作文件的模組。它提供了一系列的方法和屬性,用來滿足使用者對檔案的操作需求。
const fs = reuire('fs')
讀取指定文件中的內容
1. fs.readFile()的語法格式
使用fs.readFile() 方法,可以讀取指定檔案中的內容,語法格式如下:
fs.readFile(path[, options], callback)
2. fs.readFile()的範例程式碼
#以utf8 的格式,讀取指定檔案的內容,並列印err 和data 的值:
const fs = require('fs'); fs.readFile('hello.txt', 'utf-8', (err, data) => { // 判断是否读取成功 if (err) return console.log(err); console.log(data); });
向指定的檔案中寫入內容
#1. fs.writeFile()的語法格式
使用fs.writeFile() 方法,可以在指定的檔案中寫入內容,語法格式如下:
fs.writeFile(file, data[, options], callback)
2. fs.writeFile()的範例程式碼
#const fs = require('fs'); fs.writeFile('./hello.txt', 'hello node', (err) => { // 判断是否写入成功 if (err) return console.log(err); console.log('写入成功'); });
讀取指定目錄下所有檔案的名稱
1.fs.readdir()的語法格式
#使用fs.readdir() 方法,可以讀取指定目錄下所有檔案的名稱,語法格式如下:
fs.readdir(path[, options], callback)
2.fs.readdir()的範例程式碼
#透過fs.readdir() 方法,可以讀取指定目錄下,所有檔案的名稱:
const fs = require('fs'); fs.readdir('./', (err, data) => { // 错误处理 if (err) return console.log(err); console.log(data); });
fs 模組-路徑動態拼接的問題
#在使用fs 模組操作檔時,如果提供的操作路徑是以. / 或../ 開頭的相對路徑時,很容易出現路徑動態拼接錯誤的問題。這是因為程式碼在運作的時候,會以執行node 指令時所處的目錄,動態拼接出被操作檔的完整路徑。
解決方案:使用fs 模組操作檔案時,直接提供絕對路徑,不要提供./ 或 ../ 開頭的相對路徑,從而防止路徑動態拼接的問題。
注意:使用__dirname 取得目前檔案所在的絕對路徑
const fs = require('fs'); // 拼接要读取文件的绝对路径 let filepath = __dirname +'/hello.txt' fs.readFile(filepath, 'utf-8', (err, data) => { // 判断是否读取成功 if (err) return console.log(err); console.log(data); });
path 模組是Node.js 官方提供的、用來處理路徑的模組。它提供了一系列的方法和屬性,用來滿足使用者對路徑的處理需求。
如果要在JavaScript 程式碼中,使用path 模組來處理路徑,則需要使用以下的方式先匯入它:
const path = require('path')
#路徑拼接
path.join()的語法格式
使用path.join() 方法,可以使用多個路徑片段拼接為完整的路徑字串,語法格式如下:
path.join([...paths])
使用path.join() 方法,可以把多個路徑片段拼接為完整的路徑字串:
const path = require('path'); console.log( path.join('a', 'b', 'c') ); // a/b/c console.log( path.join('a', '/b/', 'c') ); // a/b/c console.log( path.join('a', '/b/', 'c', 'index.html') ); // a/b/c/index.html console.log( path.join('a', 'b', '../c', 'index.html') ); // a/c/index.html console.log(__dirname); // node自带的全局变量,表示当前js文件所在的绝对路径 // 拼接成绩.txt的绝对路径 console.log( path.join(__dirname, '成绩.txt') ); // ------ 最常用的
取得路徑中的檔案名稱
1.path.basename()的語法格式
使用path.basename( ) 方法,可以取得路徑中的最後一部分,經常透過這個方法取得路徑中的檔案名,語法格式如下:
path.basename(path[,ext])
2.path.basename()的代码示例
使用 path.basename() 方法,可以从一个文件路径中,获取到文件的名称部分:
// 找文件名 console.log( path.basename('index.html') ); // index.html console.log( path.basename('a/b/c/index.html') ); // index.html console.log( path.basename('a/b/c/index.html?id=3') ); // index.html?id=3 console.log(path.basename('/api/getbooks')) // getbooks
获取路径中的文件扩展名
1.path.extname()的语法格式
使用 path.extname() 方法,可以获取路径中的扩展名部分,语法格式如下:
path.extname(path)
使用 path.extname() 方法,可以获取路径中的扩展名部分
// 找字符串中,最后一个点及之后的字符 console.log( path.extname('index.html') ); // .html console.log( path.extname('a.b.c.d.html') ); // .html console.log( path.extname('asdfas/asdfa/a.b.c.d.html') ); // .html console.log( path.extname('adf.adsf') ); // .adsf
原文地址:https://juejin.cn/post/7088650568150810638
作者:L同学啦啦啦
更多node相关知识,请访问:nodejs 教程!
以上是聊聊node中的fs模組、path模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!