我使用此代码指定文件是否存在:
if(fs.exists('../../upload/images/book/2.jpg')){
console.log("yes the file exist");
} else{
console.log("there is no file");
}
虽然文件在那里,但总是说它不存在(没有文件)
我也使用fs.stat(...)
,但它再次给出了结果(没有文件)
文件夹结构:
root_app
--------|.tmp
--------|api
------------|controllers
------------------------|BookContoller.js (My code run from here)
--------|...(And the rest of the folders)
--------|upload
---------------|images
----------------------|book
---------------------------|2.jpg
谢谢
答案 0 :(得分:1)
fs.exists
是异步的。要使代码正常工作,您只需将其更改为fs.existsSync
。
此外,您的文件路径错误,您需要使用path.resolve
或__dirname
,因此脚本会知道在哪里找到该文件。
if(fs.existsSync(path.resolve('../../upload/images/book/2.jpg'))) {
参见文档:
答案 1 :(得分:0)
我的问题解决了
显然,我们应该使用fs.accessSync()或fs.access()而不是fs.exists()
Check out this link
也可以执行此程序:
function Custom_existsSync(filename) {
try {
fs.accessSync(filename);
return true;
} catch(ex) {
return false;
}
if(Custom_existsSync(filename)){
....
}
感谢所有帮助过我的人