检查文件的存在并返回(如果存在)

时间:2015-10-30 19:14:32

标签: javascript node.js asynchronous

我正在使用Node.js,我想检查文件是否存在并将结果返回给对象的属性。我试着这样做:

var file_exists = function(file) {
 return fs.stat(file, function(error, stat) {
    if (error) {
        return false;
    } else {
        return true;
    }
 });
};

result = [];
for (var i = 0; i < files.length; i++) {
 result.push({
   exists: file_exists(file[i])
 });
}

但是返回undefined。这是因为异步?

我怎么能解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

你有一个概念错误,当你执行fs.stat时,回调运行内部自己的范围。返回true / false,不会在file_exists函数范围内返回。

您可以使用fs.statSync

var file_exists = function(file) {
 try {
    fs.statSync(file);
 } catch (e) {
    return false;
 }

 return true;

};