Javascript 节点js-fs文件存在-有点困惑
我对检查文件是否存在的各种方法有点困惑 我可以:() 但在出现错误的情况下运行该条件感觉很奇怪(预计该文件有时不在那里) 然后是fs.exists()() 这感觉更符合逻辑,但后来我读到: “在打开文件之前检查文件是否存在是一种反模式,会使您容易受到竞争条件的影响:另一个进程可能会在调用fs.exists()和fs.open()之间删除该文件。只需打开该文件,并在不存在时处理错误。” 我明白,所以在我走“错误之路”之前 使用nodesJavascript 节点js-fs文件存在-有点困惑,javascript,node.js,Javascript,Node.js,我对检查文件是否存在的各种方法有点困惑 我可以:() 但在出现错误的情况下运行该条件感觉很奇怪(预计该文件有时不在那里) 然后是fs.exists()() 这感觉更符合逻辑,但后来我读到: “在打开文件之前检查文件是否存在是一种反模式,会使您容易受到竞争条件的影响:另一个进程可能会在调用fs.exists()和fs.open()之间删除该文件。只需打开该文件,并在不存在时处理错误。” 我明白,所以在我走“错误之路”之前 使用nodesfs(),检查文件是否存在的常用方法是什么(如果是打开它的话)
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
,如果无法打开它,它将出错。如果可以的话,它会返回数据。是的,伙计,这就是我在旅行中发现的-你介意在你的答案中弹出评论行吗?我会接受的。谢谢