Node.js文件路径的坑

初学nodejs,在今天遇到了一个神奇的问题,先上代码:

 var data = fs.readFileSync( './system-config.json', "utf8")

没错,我想读取system-config.json中的配置。刚开始,无论如何也读不到,连个错误信息也没有。调试了一番,终于出了一个错误信息:
no such file or directory
怎么可能?先看看我的工程目录结构:

<code>
root----
|_others
|_init
|_system-config.json
</code>
明明就在这里啊,明明有啊!!!确认了好几遍的!!既然系统说找不到那肯定还是路径不对,最后改成:

 var data = fs.readFileSync(__dirname + '/system-config.json', "utf8")

成功!!!喜极而泣!!!原来,只有 require 的路径是相对当前文件,其他大部分函数接收的路径都是相对于「当前工作目录」即程序运行时的 cwd。所以别一种解决方式就是:

path.join(process.cwd(), '/init/system-config.json')

当然了,cwd这种方式要保证启动文件在程序的根目录下。
参看这里

上一篇:Java中避免if-else-if:策略模式


下一篇:Linux下Node.js的安装与配置