为什么这个FS循环读取的文件名,但不是他们的内容?
我想要做的是输出一个文件夹中的所有文件的内容:
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
的问题? 这是我的项目结构:
你需要传递你的文件名的完整path:
fs.readFile(__dirname + `/${input}/` + file, 'utf8', (err, data) => {
我会build议你logging错误,以便下次发生什么错误:
fs.readFile(__dirname + `/${input}/` + file, 'utf8', (err, data) => { if (err) { console.log(err) } console.log(data) })