-1

私のプロジェクトで始まるフォルダー構造があります 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

これまでのところ、ファイルパス文字列が長すぎるということを理解しましたか? 特定のパスに制限されている場合、このようなエラーを回避するにはどうすればよいですか?

4

1 に答える 1

3

なんらかの理由で関数のように見えuser(どこから来たのか、どこで初期化したかによって異なります)、エラー メッセージに表示さ../data/callback => { ...れるのは、その関数の文字列化されたバージョンです。

userそれが本当にユーザーの単なる文字列識別子であることを再確認します。最初の例に基づいて、使用すべきではありませんuser.hashか?

于 2019-06-04T02:04:03.113 に答える