检查文件是否存在,如果存在则返回

我正在使用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。 这是因为asynchronous?

我怎么解决这个问题?

谢谢。

你有一个概念的错误,当你执行fs.stat,callback运行在他自己的范围内。 返回true / false,不返回file_exists函数的作用域。

你可以使用fs.statSync

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