node js FS accessSync设置全局变量路径失败

r1s*_*1si 1 javascript synchronization fs node.js

我在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";
  }
});
Run Code Online (Sandbox Code Playgroud)

运行此代码后,全局"y"变量仍然保留undefined,并且不会设置为"foo".有人能帮我吗?

Mtl*_*Dev 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
}
Run Code Online (Sandbox Code Playgroud)

或者,将其包装在一个函数中:

function fileExists(filename){
  try{
    require('fs').accessSync(filename)
    return true;
  }catch(e){
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)