节点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"。有人能帮我吗?
来自 nodejs FS 文档:
fs.accessSync(path[, mode])#
Synchronous version of fs.access(). This throws if any accessibility checks fail, and does nothing otherwise.
accessSync 函数没有回调参数,所以你需要抛出
这里有一个例子:
try{
fs.accessSync("real_exixs_path", fs.R_OK | fs.W_OK)
}catch(e){
//error
}
//success!
接受的答案有错误,总是运行"success"不管文件是否存在
更正版本:
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 核心中的同步功能有问题。 例如我有一个语法为
的 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"。有人能帮我吗?
来自 nodejs FS 文档:
fs.accessSync(path[, mode])#
Synchronous version of fs.access(). This throws if any accessibility checks fail, and does nothing otherwise.
accessSync 函数没有回调参数,所以你需要抛出
这里有一个例子:
try{
fs.accessSync("real_exixs_path", fs.R_OK | fs.W_OK)
}catch(e){
//error
}
//success!
接受的答案有错误,总是运行"success"不管文件是否存在
更正版本:
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;
}
}