Javascript NodeJS在目录中查找以name.*开头的文件

Javascript NodeJS在目录中查找以name.*开头的文件,javascript,node.js,fs,Javascript,Node.js,Fs,我的NodeJS服务器将获得一个请求/配置文件\化身/用户名 并且必须在目录中查找以“username.*”开头的文件, 因此将使用此文件进行响应。 我考虑使用fs.readdir,并通过所有文件名的数组进行迭代。 但它不必要地列出了数组中的所有文件。对于包含100GB以上文件的非常大的目录无效。 有其他的解决方案吗?目前还有一个类似的问题。在您的情况下,如果有人提供“./…”作为用户名,请注意安全问题!它们可以遍历服务器的文件系统。您可以创建一个带有键“user”的数据结构avl树,并在每个节

我的NodeJS服务器将获得一个请求/配置文件\化身/用户名 并且必须在目录中查找以“username.*”开头的文件, 因此将使用此文件进行响应。 我考虑使用fs.readdir,并通过所有文件名的数组进行迭代。 但它不必要地列出了数组中的所有文件。对于包含100GB以上文件的非常大的目录无效。
有其他的解决方案吗?

目前还有一个类似的问题。在您的情况下,如果有人提供“./…”作为用户名,请注意安全问题!它们可以遍历服务器的文件系统。您可以创建一个带有键“user”的数据结构avl树,并在每个节点中保留要根据给定键恢复的文件路径。顺便说一句,可以缓解此问题的一个技巧是使用类似“users/a/”和“users/b”的目录结构以此类推--这将减少目录中的文件数量。您甚至可以细分为“users/a/aa”和“users/a/ab”,这样一个名为“abe”的用户将进入“users/a/ab”文件夹。噢,感谢您提到不安全!这种细分是保持readdir较小的一种聪明方法。如果要提高效率,可能需要查看avl树。@user2740650也许我不应该直接发送文件,而应该将它们重定向到文件的静态文件夹/文件。这能解决安全问题吗?现在有一个类似的问题。在您的情况下,如果有人提供“./…”作为用户名,请注意安全问题!它们可以遍历服务器的文件系统。您可以创建一个带有键“user”的数据结构avl树,并在每个节点中保留要根据给定键恢复的文件路径。顺便说一句,可以缓解此问题的一个技巧是使用类似“users/a/”和“users/b”的目录结构以此类推--这将减少目录中的文件数量。您甚至可以细分为“users/a/aa”和“users/a/ab”,这样一个名为“abe”的用户将进入“users/a/ab”文件夹。噢,感谢您提到不安全!这种细分是保持readdir较小的一种聪明方法。如果要提高效率,可能需要查看avl树。@user2740650也许我不应该直接发送文件,而应该将它们重定向到文件的静态文件夹/文件。这能解决安全问题吗?