Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点js-fs文件存在-有点困惑_Javascript_Node.js - Fatal编程技术网

Javascript 节点js-fs文件存在-有点困惑

Javascript 节点js-fs文件存在-有点困惑,javascript,node.js,Javascript,Node.js,我对检查文件是否存在的各种方法有点困惑 我可以:() 但在出现错误的情况下运行该条件感觉很奇怪(预计该文件有时不在那里) 然后是fs.exists()() 这感觉更符合逻辑,但后来我读到: “在打开文件之前检查文件是否存在是一种反模式,会使您容易受到竞争条件的影响:另一个进程可能会在调用fs.exists()和fs.open()之间删除该文件。只需打开该文件,并在不存在时处理错误。” 我明白,所以在我走“错误之路”之前 使用nodesfs(),检查文件是否存在的常用方法是什么(如果是打开它的话)

我对检查文件是否存在的各种方法有点困惑

我可以:()

但在出现错误的情况下运行该条件感觉很奇怪(预计该文件有时不在那里)

然后是fs.exists()()

这感觉更符合逻辑,但后来我读到:

“在打开文件之前检查文件是否存在是一种反模式,会使您容易受到竞争条件的影响:另一个进程可能会在调用fs.exists()和fs.open()之间删除该文件。只需打开该文件,并在不存在时处理错误。

我明白,所以在我走“错误之路”之前

使用nodes
fs()
,检查文件是否存在的常用方法是什么(如果是打开它的话)/(也许最快的方法也是简洁的答案)

我的程序中的逻辑很简单-

if (file does not exist) { continue the tasks to create it; } 
else { read it and respond with it; }

非常感谢

您可以使用readFileSync来做您想做的事情

var file = fs.readFileSync('somefile.html');
if (file) { do stuff }
else { error }

这个故事的寓意是你不需要做任何事情。这纯粹是检查文件是否存在。您可以运行readFile,如果它无法打开它,它将出错。如果可以,它将返回数据。

您可以使用readFileSync执行您想要的操作

var file = fs.readFileSync('somefile.html');
if (file) { do stuff }
else { error }

这个故事的寓意是你不需要做任何事情。这纯粹是检查文件是否存在。您可以运行readFile,如果它无法打开它,它将出错。如果可以,它将返回数据。

您可以使用readFileSync执行您想要的操作

var file = fs.readFileSync('somefile.html');
if (file) { do stuff }
else { error }

这个故事的寓意是你不需要做任何事情。这纯粹是检查文件是否存在。您可以运行readFile,如果它无法打开它,它将出错。如果可以,它将返回数据。

您可以使用readFileSync执行您想要的操作

var file = fs.readFileSync('somefile.html');
if (file) { do stuff }
else { error }


这个故事的寓意是你不需要做任何事情。这纯粹是检查文件是否存在。您可以运行readFile,如果它无法打开它,它将出错。如果可以,它将返回数据。

hmm,明白了我更喜欢这个方法的异步版本-应该以同样的方式工作,对吗?所以在fs.open和fs.readfile之间-您会选择fs.readfile(异步或同步)为什么?很抱歉打扰您。您可以阅读更多关于sync和async的内容,它们的工作原理完全相同,除了回调/函数/值get的运行/设置方式。这个故事的寓意是您不需要这样做。这纯粹是检查文件是否存在。您只需运行
readFile
,如果无法打开它,它将出错。如果可以的话,它会返回数据。是的,伙计,这就是我在旅行中发现的-你介意在你的答案中弹出评论行吗?我会接受的。谢谢。嗯,哥们儿我更喜欢这个方法的异步版本-应该以同样的方式工作,对吗?所以在fs.open和fs.readfile之间-您会选择fs.readfile(异步或同步)为什么?很抱歉打扰您。您可以阅读更多关于sync和async的内容,它们的工作原理完全相同,除了回调/函数/值get的运行/设置方式。这个故事的寓意是您不需要这样做。这纯粹是检查文件是否存在。您只需运行
readFile
,如果无法打开它,它将出错。如果可以的话,它会返回数据。是的,伙计,这就是我在旅行中发现的-你介意在你的答案中弹出评论行吗?我会接受的。谢谢。嗯,哥们儿我更喜欢这个方法的异步版本-应该以同样的方式工作,对吗?所以在fs.open和fs.readfile之间-您会选择fs.readfile(异步或同步)为什么?很抱歉打扰您。您可以阅读更多关于sync和async的内容,它们的工作原理完全相同,除了回调/函数/值get的运行/设置方式。这个故事的寓意是您不需要这样做。这纯粹是检查文件是否存在。您只需运行
readFile
,如果无法打开它,它将出错。如果可以的话,它会返回数据。是的,伙计,这就是我在旅行中发现的-你介意在你的答案中弹出评论行吗?我会接受的。谢谢。嗯,哥们儿我更喜欢这个方法的异步版本-应该以同样的方式工作,对吗?所以在fs.open和fs.readfile之间-您会选择fs.readfile(异步或同步)为什么?很抱歉打扰您。您可以阅读更多关于sync和async的内容,它们的工作原理完全相同,除了回调/函数/值get的运行/设置方式。这个故事的寓意是您不需要这样做。这纯粹是检查文件是否存在。您只需运行
readFile
,如果无法打开它,它将出错。如果可以的话,它会返回数据。是的,伙计,这就是我在旅行中发现的-你介意在你的答案中弹出评论行吗?我会接受的。谢谢