javascript - fs.readFileSync 引用错误 : fileContents is not defined

标签 javascript node.js fs

我正在尝试从目录中递归读取文件并尝试执行以下代码。

readDirFiles.list('/dir/subDir/', 'utf8', function (err, filenames) {
      if (err) return console.dir(err);
      //filenames haslist of all files and dirs in '/dir/subDir/'

      if(filenames){
        filenames.forEach(function(filename) {
          //filename is full path of file and array also contains sub directory paths

          try {
            console.log('Opening file '+  filename);
            fileContents = fs.readFileSync(filename, 'utf8');
            console.log(md5(fileContents));
          } catch (err) {
            console.log(err);
          }

        }, this);
      }
    });

filenames 中,我有所有文件和目录的列表,我想从中只读取文件并跳过目录。当我尝试使用 fs.readFileSync(filename, 'utf8') 读取文件时,它给了我两个错误 1. { [Error: EISDIR: illegal operation on a directory, read] errno: -21, code: 'EISDIR', syscall: 'read' 这个没问题,因为它正在尝试读取目录而不是文件。 2.[ReferenceError: fileContents is not defined] 不知道为什么会出现此错误,因为我正在传递具有正确扩展名的正确文件路径。

最佳答案

您的脚本可能在顶部有 'use strict',并且由于您没有正确声明 fileContents,您会收到引用错误。

要修复,请使用适当的变量声明:

let fileContents = fs.readFileSync(filename, 'utf8');

关于javascript - fs.readFileSync 引用错误 : fileContents is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42920916/

相关文章:

node.js - 尝试将谷歌云功能与 node.js 一起使用时,admin.firestore 不是一个功能

javascript - 使用 Node FS 将大型 CSV 写入 JS 文件

node.js - 如何使用 fs.readFileSync() 获取特定文件

node.js - 使用不带分隔符的 fs 从数组中保存文件

javascript - 为什么 React 会丢弃整个 DOM 子树并从头开始重新创建它?

javascript - Node.js 变量作用域

javascript - Meteoor 中样式表的内容类型

node.js - NodeJS 中的 HTTPS 请求

javascript - Moment.js 解析时区偏移

javascript - 无法写入 CSV 文件