初学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这种方式要保证启动文件在程序的根目录下。
参看这里