在本机调试fs.exists没问题好好的,可是上传到Linux服务器之后,判断出现问题,绝对路径正常,相对路径返回false,有人遇到过么这是为什么…? /home/server/test.js (同目录下有一个main.js,路径写成“./main.js”也不行,“…/server/main.js”也不行,只有写成“/home/server/main.js”才可以) var fs = require(“fs”); fs.exists(“main.js”, function(exsist){ console.log(exsist); });
执行node /home/server/test.js 输出:false
console.log(fs.realpathSync(‘main.js’)); 看看
path
如果是相对路径应该是相对process.cwd()
目录来算的,如果你在/home/server
下执行node test.js
就对了
@ravenwang +1
Linux 下,工作目录可以设一下。
process.chdir(directory)
@ravenwang 是这样的 我试着取了下 process.cwd() 是 “/” 说明工作目录是根目录因为我是在根目录启动的 然后我希望是在任何目录启动 它都能够正常运行 所以用它来解决 >> __dirname 已经解决了 谢谢~
然后我想问一下 如果 判断文件是否存在的方法在 test/A.js 中,B.js与test目录同级,C.js也和test目录统计,然后B.js去调用A.js中判断C.js是否存在的方法 除了传递__dirname之外 是否还有其他方法 比如可以取到调用该方法的文件的真实路径? 目录结构: test |----A.js (判断文件是否存在方法在此文件中) B.js (引用A.js 调用其中的判断文件是否存在方法,判断C.js是否存在) C.js 任意目录>node /…/test/B.js
可能路径不对