我正在使用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。这是因为异步?
我怎么能解决这个问题?
感谢。
答案 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;
};