Node.js 名字太长,scandir

Node.js name too long, scandir

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

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

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

看起来 user 由于某种原因是一个函数(取决于它来自哪里/你在哪里初始化它),你在错误消息中看到的 ../data/callback => { ... 是字符串化版本那个函数。

我会仔细检查 user 是否真的只是用户的字符串标识符。根据你的第一个例子,你不应该使用 user.hash?