在nodejs中,我们使用相对路径一定要小心,这个所谓的相对是相对于当前运行node的目录.
单纯这么说有点拗口
上图
如图所示,我的server.js是在web_server目录下,而web_server是在壁纸网站目录下
壁纸网站\web_server\server.js
当前server.js代码中第十行代码 我托管了一个img目录,但是实际上img目录在web_server目录下
当我在壁纸网站目录下执行node的时候
nodejs会在壁纸网站目录下去找一个叫做img的目录,当然是找不到的,所以会报错
但如果我在web_server目录下执行node
nodejs会在web_server目录下去找一个叫做img的目录,这时候是可以找到的
但是,这样每次自己运行时要看当前的目录,稍不留神就会找不到文件夹,这是很让人不爽的,所以我们可以使用__dirname
__dirname表示的是js文件所在的目录(我猜测这是一个宏,在执行时会转为绝对路径)
加上__dirname后的效果和使用绝对路径一致,也就不需要关注执行node的目录了
不过值得注意的是,要记得加 ‘ / ’,大家可以手动输出__dirname看看
那么为什么不使用绝对路径呢?
(因为懒得跑去复制路径 ,哈哈)