繁体   English   中英

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

[英]node js FS accessSync set global variable path fail

我在nodejs的FS核心中的同步功能有问题。 例如我有一个使用此语法的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”。 有人能帮我吗?

接受的答案有错误,无论文件是否存在,它将始终运行“成功”。

更正的版本:

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;
  }
}

从nodejs FS文档中:

fs.accessSync(path [,mode])#

fs.access()的同步版本。 如果任何可访问性检查失败,则抛出该异常,否则不执行任何操作。

accessSync函数没有回调参数,因此您需要抛出

这里有个例子:

try{
   fs.accessSync("real_exixs_path", fs.R_OK | fs.W_OK)
}catch(e){
   //error
}
//success!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM