聊聊node中的fs模組、path模組
這篇文章帶大家了解一下node中的fs檔案系統模組和path路徑模組,希望對大家有幫助!
fs檔案系統模組
#fs 模組是Node.js 官方提供的、用來操作文件的模組。它提供了一系列的方法和屬性,用來滿足使用者對檔案的操作需求。
- fs.readFile() 方法,用來讀取指定檔案中的內容
- fs.writeFile() 方法,用來寫入內容如果要在JavaScript 程式碼中,使用fs 模組來操作文件,則需要使用如下的方式先導入它:
const fs = reuire('fs')
讀取指定文件中的內容
1. fs.readFile()的語法格式
使用fs.readFile() 方法,可以讀取指定檔案中的內容,語法格式如下:
fs.readFile(path[, options], callback)
- 參數1:必選參數,需要指定一個檔案路徑的字串,表示要讀取哪個路徑對應的檔案。
- 參數2:可選參數,表示以什麼編碼格式讀取檔案。
- 參數3:必選參數,檔案讀取完成後,透過回呼函數拿到讀取的結果。
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)
- 參數1:必選參數,需要指定一個檔案路徑的字串,表示要文件的存放路徑。
- 參數2:必選參數,表示要寫入的內容。
- 參數3:可選參數,表示以什麼格式寫入檔案內容,預設值是utf8。
- 參數4:必選參數,檔案寫入完成後的回呼函數。
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)
- 參數1:必選參數,表示要讀取哪個目錄下的檔案名稱清單。
- 參數2:可選參數,以什麼格式讀取目錄下的檔案名稱,預設值是utf8。
- 參數3:必選參數,讀取完成以後的回呼函數。
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路徑模組
path 模組是Node.js 官方提供的、用來處理路徑的模組。它提供了一系列的方法和屬性,用來滿足使用者對路徑的處理需求。
- path.join() 方法,用來將多個路徑片段拼接成一個完整的路徑字串
- path.basename() 方法,用來從路徑字串中,將檔案名稱解析出來
如果要在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])
- 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 必选参数,表示一个路径的字符串
- 返回: 返回得到的扩展名字符串
使用 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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

nvm刪除node的方法:1、下載「nvm-setup.zip」並將其安裝在C碟;2、設定環境變量,並透過「nvm -v」指令查看版本號;3、使用「nvm install」指令安裝node;4、透過「nvm uninstall」指令刪除已安裝的node即可。

怎麼處理文件上傳?以下這篇文章為大家介紹一下node專案中如何使用express來處理文件的上傳,希望對大家有幫助!

這段時間在開發一個騰訊文檔全品類通用的HTML 動態服務,為了方便各品類接入的生成與部署,也順應上雲的趨勢,考慮使用Docker 的方式來固定服務內容,統一進行製品版本的管理。這篇文章就將我在服務 Docker 化的過程中累積起來的優化經驗分享出來,供大家參考。

這篇文章跟大家分享Node的進程管理工具“pm2”,聊聊為什麼需要pm2、安裝和使用pm2的方法,希望對大家有幫助!

PiNetwork節點詳解及安裝指南本文將詳細介紹PiNetwork生態系統中的關鍵角色——Pi節點,並提供安裝和配置的完整步驟。 Pi節點在PiNetwork區塊鏈測試網推出後,成為眾多先鋒積極參與測試的重要環節,為即將到來的主網發布做準備。如果您還不了解PiNetwork,請參考Pi幣是什麼?上市價格多少? Pi用途、挖礦及安全性分析。什麼是PiNetwork? PiNetwork項目始於2019年,擁有其專屬加密貨幣Pi幣。該項目旨在創建一個人人可參與

如何用pkg打包nodejs可執行檔?以下這篇文章跟大家介紹一下使用pkg將Node專案打包為執行檔的方法,希望對大家有幫助!

身份驗證是任何網路應用程式中最重要的部分之一。本教程討論基於令牌的身份驗證系統以及它們與傳統登入系統的差異。在本教程結束時,您將看到一個用Angular和Node.js編寫的完整工作演示。傳統身份驗證系統在繼續基於令牌的身份驗證系統之前,讓我們先來看看傳統的身份驗證系統。使用者在登入表單中提供使用者名稱和密碼,然後點擊登入。發出請求後,透過查詢資料庫在後端驗證使用者。如果請求有效,則使用從資料庫中獲取的使用者資訊建立會話,然後在回應頭中傳回會話訊息,以便將會話ID儲存在瀏覽器中。提供用於存取應用程式中受

npm node gyp失敗是因為“node-gyp.js”跟“Node.js”版本不匹配,其解決辦法:1、透過“npm cache clean -f”清除node快取;2、透過“npm install -g n”安裝n模組;3、透過「n v12.21.0」指令安裝「node v12.21.0」版本即可。
