相关文章推荐
捣蛋的皮带  ·  用C语言求CRC-32 ...·  7 月前    · 
逃跑的高山  ·  编译器错误 C2768 | ...·  1 年前    · 

如何使用Node.js来检查一个目录是否为空?

0 人关注

很久以前就 问过 这个关于PHP的问题 。这同样适用于Node.js,下面的代码在循环使用时似乎有点慢--有什么方法可以在没有插件或React.js等的情况下用纯Node.js vanilla JavaScript写这个?

const dirname = 'cdn-assets/'
fs.readdir(dirname, function(err, files) {
    if (err) {
       // some sort of error
    } else {
       if (!files.length) {
           // directory appears to be empty

另外,我能否再写一个条件来检查。

if(directory_has_these_files('.js, .css, .jpg, .svg, .mp4'))
javascript
node.js
directory
cdn
fs
TheBlackBenzKid
TheBlackBenzKid
发布于 2018-06-11
1 个回答
Zardoz
Zardoz
发布于 2018-06-29
已采纳
0 人赞同

因此,如果你这样做

fs.readdir('/path/to/empty_dir', (data, err) => console.log(data, '.....', err)) 

你会看到,结果是。

null '.....'[]

所以你的代码可以简化为

fs.readdir(dirname, (err, files)  => {
if (err && !files) {
    console.error(err)
console.info('the files --> ', files)
let regexp = RegExp('.jpeg|.doc|.png|.zip', 'gi')
for(result in files) {
    if(regexp.test(files[result])) {
        console.log('I have the following', files[result])

然而....

我们希望这种快速、现代和高效,不是吗?

所以这就更好了。

fs.readdir(dirname, (err, files)  => {
    if (err && !files) {
        console.error(err)
    let regexp = RegExp('.jpeg|.doc|.png|.zip', 'gi');
    files.filter(
        file => file.match(regexp)
    ).map(
        result => console.log('I have the following',result)