节点:fs.readdir() 总是 returns 个文件

Node: fs.readdir() always returns files

我有这个代码片段:

fs.readdir(STLFilesDir, (err, files) => {
            if (err)
            {
                console.log(err);
                throw err;
            }
            if (files)
            {
                console.log(files); //files is an array with all the files in the directory
                res.render('prerenderer.ejs');
            }   
            else 
            {
                console.log('no files found');
                res.render('prerenderer.ejs');
            }

但是,在文件夹中没有任何文件的情况下,我没有得到预期的结果。 而不是在控制台中看到没有找到文件。 我明白了 []。 这是一个空对象。 这意味着最后的 else 不起作用。所以 fs.readdir() 总是 returns 一个数组——即使它是空的。 那么如何才能将 else 部分变为 运行?

在 javascript 中,空数组 []truthy,因此您需要 if (files.length) 而不是 if (files)