如何在 fs 回调方法中访问文件名?

2024-01-04

我如何获得参数fs.read,fs.stat... http://nodejs.org/api/fs.html回调中的方法?

例如,如果我想根据文件的大小处理文件 以下(coffeeScript)代码片段

#assuming test1.txt exists
filename = "./test1.txt"
fs.stat filename, (err, stats) ->
  data = filename:filename,size:stats.size
  console.log data
  #further process filename based on size
filename = "./test2.txt"

prints

{ filename: './test2.txt', size: 5 }

因为文件名设置为“./test2.txt”。如果我使用文件名变量处理/读取文件fs.stat它将使用的回调test2.txt这不是有意的。

我期望在回调中看到的是

{ filename: './test1.txt', size: 5 }

不认为现在有办法做到这一点。在某些时候添加到节点可能是一件好事。如果你要经常这样做,你可以把fs.stat在一个友好的包装中。

var friendlyStat = function(filename, callback){
    fs.stat(filename, function(err, stats){
        stats.filename = filename

        if(err) {
            callback(err);
        } else {
            callback(err, stats);
        }
    })
}

friendlyStat('test1.txt', function(err, stat){ console.log(stat.filename);});
friendlyStat('test2.txt', function(err, stat){ console.log(stat.filename);});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 fs 回调方法中访问文件名? 的相关文章

随机推荐