function load_file_contents(path, callback) {
fs.open(path, 'r', function (err, f) {
if (err) {
callback(err);
return;
} else if (!f) {
callback(make_error("invalid_handle",
"bad file handle from fs.open"));
return;
}
fs.fstat(f, function (err, stats) {
if (err) {
callback(err);
return;
}
if (stats.isFile()) {
var b = new Buffer(10000);
fs.read(f, b, 0, 10000, null, function (err, br, buf) {
if (err) {
callback(err);
return;
}
fs.close(f, function (err) {
if (err) {
callback(err);
return;
}
callback(null, b.toString('utf8', 0, br));
});
});
} else {
calback(make_error("not_file", "Can't load directory"));
return;
}
});
});
}
load_file_contents(
"test.txt",
function (err, contents) {
if (err)
console.log(err);
else
console.log(contents);
}
);
在这段代码中,我不太明白这个“f”来自哪里? 在“fs.open()”之后,有一行
" } else if (!f) {"
这是什么意思,这是来自哪里?
答案 0 :(得分:1)
f
是传递给fs.open()
回调的文件描述符,如果该文件能够被打开的话。
else if (!f) {
callback(make_error("invalid_handle",
"bad file handle from fs.open"));
return;
}
正在检查文件描述符是否是假的(可能是它正在检查它是否为null或未定义)并且调用函数自己的回调并显示错误。