我在nodejs的FS核心中遇到Sync功能问题。 例如,我有一个具有此语法的nodejs文件
var y;
fs.accessSync("real_exixs_path", fs.R_OK | fs.W_OK, function(err) {
if (err) {
console.log("File error!");
} else {
y = "foo";
}
});
运行此代码后,全局“y”变量仍为undefined
,并且不会设置为“foo”。有人能帮我吗?
答案 0 :(得分:6)
接受的答案有错误,无论文件是否存在,它都将始终“成功”。
更正版本:
try{
require('fs').accessSync("filename.ext", fs.R_OK | fs.W_OK)
//code to action if file exists
}catch(e){
//code to action if file does not exist
}
或者将其包装在函数中:
function fileExists(filename){
try{
require('fs').accessSync(filename)
return true;
}catch(e){
return false;
}
}
答案 1 :(得分:1)
:
fs.accessSync(路径[,模式])#
fs.access()的同步版本。如果任何可访问性检查失败,则抛出此异常,否则不执行任何操作。
accessSync函数没有回调参数,因此您需要抛出
这里有一个例子:
try{
fs.accessSync("real_exixs_path", fs.R_OK | fs.W_OK)
}catch(e){
//error
}
//success!