Node.js 路径正确时,节点JS文件显示为不存在
我正在使用以下命令检查文件是否存在:Node.js 路径正确时,节点JS文件显示为不存在,node.js,Node.js,我正在使用以下命令检查文件是否存在: var fs = require("fs"); console.log(process.cwd()); var file="C:\\Users\\Usr1\\Documents\\Node\\Test1\\input.txt"; if(!fs.existsSync(file)) { console.log("File not found"); } 路径正确,文件确实存在。如果我输出文件,它也会显示正确的路径。我是NodeJS的新手,不知道发生了
var fs = require("fs");
console.log(process.cwd());
var file="C:\\Users\\Usr1\\Documents\\Node\\Test1\\input.txt";
if(!fs.existsSync(file)) {
console.log("File not found");
}
路径正确,文件确实存在。如果我输出
文件
,它也会显示正确的路径。我是NodeJS的新手,不知道发生了什么。有人能帮忙吗?首先。从fs.existsSync()
:
不建议在调用fs.open()、fs.readFile()或fs.writeFile()之前使用fs.exists()检查文件是否存在。这样做会引入竞争条件,因为其他进程可能会在两次调用之间更改文件的状态。相反,用户代码应该直接打开/读取/写入文件,并在文件不存在时处理引发的错误
因此,如果您过于重写您的逻辑,考虑到建议,并添加一点@Hogan建议的路径
模块逻辑:
var fs = require("fs");
var path = require('path');
console.log(process.cwd()); // C:\Users\Usr1\Documents\Node\Test1
var file="C:\\Users\\Usr1\\Documents\\Node\\Test1\\input.txt";
fs.open(path.normalize(file), 'rx', function(err, fd){
if (err) console.log(err); // consoling the actual error may help in troubleshooting what the issue is...
// do something now...
});
首先。从
fs.existsSync()
:
不建议在调用fs.open()、fs.readFile()或fs.writeFile()之前使用fs.exists()检查文件是否存在。这样做会引入竞争条件,因为其他进程可能会在两次调用之间更改文件的状态。相反,用户代码应该直接打开/读取/写入文件,并在文件不存在时处理引发的错误
因此,如果您过于重写您的逻辑,考虑到建议,并添加一点@Hogan建议的路径
模块逻辑:
var fs = require("fs");
var path = require('path');
console.log(process.cwd()); // C:\Users\Usr1\Documents\Node\Test1
var file="C:\\Users\\Usr1\\Documents\\Node\\Test1\\input.txt";
fs.open(path.normalize(file), 'rx', function(err, fd){
if (err) console.log(err); // consoling the actual error may help in troubleshooting what the issue is...
// do something now...
});
我不在unixcan上,您可以向我们显示您的
文件和进程.cwd()
的输出吗?请尝试/
和/或阅读此=>您是否检查了文件权限?可能当前用户不允许读取Usr1-s documents目录。在linux上对我很好。。。也许你的道路错了。。。在您的var file=xxxx之后,使用。。。console.log(文件);并确认路径正确我不在unixcan上您可以向我们显示您的文件和进程.cwd()的输出吗?请尝试/
和/或阅读此=>您是否检查了文件权限?可能当前用户不允许读取Usr1-s documents目录。在linux上对我很好。。。也许你的道路错了。。。在您的var file=xxxx之后,使用。。。console.log(文件);并确认路径为correctprocess.cwd()和file
分别解析为C:\Users\Usr1\Documents\Node\Test1
和C:\Users\Usr1\Documents\Node\Test1\input.txt
尝试用当前工作目录中的相对路径替换文件路径:var file='.\input.txt'
,我更新了帖子,在fs.open()
回调中添加了console.log(err)
。这将控制台错误,供您查看。请粘贴返回的错误。process.cwd()和file
分别解析为C:\Users\Usr1\Documents\Node\Test1
和C:\Users\Usr1\Documents\Node\Test1\input.txt
尝试用当前工作目录中的相对路径替换文件路径:var file='.\input.txt'
,我更新了帖子,在fs.open()
回调中添加了console.log(err)
。这将控制台错误,供您查看。请粘贴返回的错误。