我要做的是输出一个文件夹下所有文件的内容:
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
有问题?这是我的项目结构:
最佳答案
您需要传递文件名的完整路径:
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/