gpt4 book ai didi

javascript - 为什么这个 fs 循环读取文件名而不是它们的内容?

转载 作者:行者123 更新时间:2023-11-30 12:23:20 26 4
gpt4 key购买 nike

我要做的是输出一个文件夹下所有文件的内容:

  const fs = require('fs')
, input = process.argv[2]



fs.readdir(__dirname + `/${input}/`, (err, files) => {
if (err) {
console.log(err)
return
}

files.forEach((file) => {
console.log(file)

fs.readFile(file, 'utf8', (err, data) => {
console.log(data)
})
})
})

但我很困惑 console.log(file) 输出文件名:

alex@alex-K43U:~/node/m2n/bin$ node index4.js folder
test.txt
test2.txt

但是 console.log(data) 返回 undefined:

alex@alex-K43U:~/node/m2n/bin$ node index4.js folder
undefined
undefined

这里发生了什么?

编辑:

也许 __dirname 有问题?这是我的项目结构:

enter image description here

最佳答案

您需要传递文件名的完整路径:

fs.readFile(__dirname + `/${input}/` + file, 'utf8', (err, data) => {

而且我会建议您记录错误,这样您下次就会知道发生了什么错误:

fs.readFile(__dirname + `/${input}/` + file, 'utf8', (err, data) => {
if (err) {
console.log(err)
}
console.log(data)
})

关于javascript - 为什么这个 fs 循环读取文件名而不是它们的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30301879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com