Node.js名称太长,scandir

时间:2019-06-03 23:23:05

标签: node.js path backend scandir enoent

我有一个从我的项目开始的文件夹结构 请注意,user.hash和user是MD5哈希

root/data/${user.hash}/

现在,我需要做的是使用以下命令读取该目录中的文件:

  var companies = fs.readdirSync(`../data/${user}/`);

我也尝试过

var BASE_FOLDER = path.resolve(__dirname, "..");

  var companies = fs.readdirSync(`${BASE_FOLDER}/data/${user}/`);

在两种情况下,我都会遇到以下错误:

UnhandledPromiseRejectionWarning: Error: ENAMETOOLONG: name too long, scandir '../data/callback => {
                AND HERE MY CODE FOLLOWS

到目前为止,我了解的是文件路径字符串太长?如果我们局限于特定路径,该如何解决这样的错误??

1 个答案:

答案 0 :(得分:2)

由于某种原因,user似乎是一个函数(取决于它来自/初始化的位置),并且在错误消息../data/callback => { ...中看到的是该函数的字符串化版本

我会仔细检查user确实只是用户的字符串标识符。根据第一个示例,您是否应该使用user.hash