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)
。这将控制台错误,供您查看。请粘贴返回的错误。