![](/img/trans.png)
[英]How can I create a txt file that holds the contents of an array in JavaScript?
[英]How can I correctly find a .txt file and read it's contents using NodeJS
我正在構建一個 Electron 應用程序,並且我有一個 logs.txt 文件,我想讀取其中的內容並將其放在 HTML 頁面上。 我正在使用 NodeJS 和“fs”模塊,但下面的代碼給了我錯誤“未捕獲的錯誤:ENOENT:沒有這樣的文件或目錄......”
我認為問題可能在於它的參考。 下面是代碼:
const fs = require('fs')
fs.readFile('file://' + __dirname + '/logs.txt', function(err, data) {
if (err) throw err;
document.getElementById("main").innerHTML = data;
});
在錯誤中,它向我顯示了文件的確切位置。 這是我得到的錯誤:
Uncaught Error: ENOENT: no such file or directory, open 'file:///Users/MY_USER_ACCOUNT/files/code/git/MY_APP/src/usr/logs.txt'
這正是 logs.txt 文件所在的位置,但由於某種原因,它仍然說那里沒有這樣的文件。
如果相關的話,我在 Mac 上。
謝謝你。
如果將string
作為參數傳遞, fs.readFile
需要一個文件路徑。
您正在向它傳遞一個file://
URL string
。 刪除file://
。
您還想將文件的編碼傳遞給fs.readFile
:
const fs = require('fs')
fs.readFile(__dirname + '/logs.txt', 'utf-8', function(err, data) {
if (err) throw err;
document.getElementById("main").innerHTML = data;
});
(您確定要讀取相對於logs.txt
源文件的位置的 logs.txt 嗎?)
const fsPromises = require('fs').promises;
const data = await fs.readFile(__dirname + '/logs.txt', 'utf-8')
document.getElementById("main").innerHTML = data;
如果您使用的是file://
格式,則需要創建一個URL
object 像這樣傳遞給fs.readFile()
而不僅僅是將其作為字符串傳遞:
const fileUrl = new URL('file://' + __dirname + '/logs.txt');
fs.readFile(fileUrl, function(err, data) {
if (err) throw err;
document.getElementById("main").innerHTML = data;
});
請參閱此處的文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.