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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Objective-C

iOS-将项目上传到 GitHub 上

42760
来自专栏python成长之路

面向对象封装的web服务器

20850
来自专栏编程微刊

微信小程序从零开始开发步骤(七)引入外部js 文件

26440
来自专栏程序员同行者

django权限管理(Permission)

1.3K40
来自专栏黑泽君的专栏

用gcc编译c语言程序以及其编译过程

对于初学c语言编程的我们来说,学会如何使用gcc编译器工具,对理解c语言的执行过程,加深对c语言的理解很重要!!!

17010
来自专栏GreenLeaves

五、CLR加载程序集代码时,JIT编译器对性能的产生的影响

1、CLR首次加载代码造成的性能损失      四、CLR执行程序集中代码介绍了CLR在首次执行一个类的时,会初始化一个内部结构,然后当目标方法被首次调用时,...

31370
来自专栏小樱的经验随笔

【Python Learning第一篇】Linux命令学习及Vim命令的使用

学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*) 此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多...

394100
来自专栏王二麻子IT技术交流园地

Linux常用命令100个用法

平时用linux时,我有一个习惯就是把遇到的,比较有用,并且容易忘的命令,放到一个文本文件中,没事的时候可以拿出来看看,这样可以加深映像,时间长了这些命令的用法...

25050
来自专栏每日一篇技术文章

微信小程序_05 模板的使用

@import "../../templates/reward/reward.wxss";

29610
来自专栏前端杂货铺

深入seajs源码系列一

简述         前端开发模块化已经是大势所趋,目前模块化的规范有很多,众所周知的有commonJS,Module/Wrappings和AMD等,而且ES6...

31590

扫码关注云+社区

领取腾讯云代金券