Node.JS 运行 fs.readdir 数组中每一项的函数

Node.JS run function for each item in fs.readdir array

我有一个 fs.readdir() 函数,我想每隔几个小时 运行。这样做的原因是一堆文件经常被发送到我的盒子,我必须 运行 每个文件的脚本才能将它们上传到数据库。

fs.readdir('some/location/',(err,files) => {
    if (files.indexOf('someFile') > -1) {
        console.log('file found')
        function1()
    }else{
        Console.log('file not found')
})

现在我不想对所有 13 个被删除的文件执行 readdir 有没有办法创建像

这样的列表
someFile = function1()
someFile2 = function2()

所以它 运行 每个文件都为 readdir 数组中存在的每个文件提供专用函数?

var function1 = function........

var function2 = function... do.somethng.diferent

您可以:

  1. 创建一个名为 fileFunctions 的对象 {},将每个文件名映射到要应用的函数。
  2. 遍历目录的文件并应用与此文件名匹配的函数,如果此文件名与 fileFunctions 中的条目匹配,则使用您刚刚构建的对象:


fileFunctions = {
  'file1' => function() {/*function to apply to file1*/},
  'file2' => function() {/*function to apply to file2*/},
   //etc..
};
fs.readdir('some/location/',(err,files) => {
    files.map((file) => {
       if(file in fileFunctions) {
            fileFunctions[file1](file1);
       }
     });
});