为什么这个fs循环读取文件名但不读取其内容?

时间:2015-05-18 11:22:19

标签: javascript node.js

我想要做的是输出文件夹中所有文件的内容:

  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

1 个答案:

答案 0 :(得分:3)

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

$filter=endswith(Attribute, 'A')

我建议你记录错误,以便下次知道发生了什么错误:

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