相对路径 " ./ " or " ../ "(基于当前执行的文件的目录路径)

-
在step1中执行: node ./app.js;
fs.readFile读取的文件路径是基于当前终端所处的目录路径拼接而来 -
fs.readFile读取的文件路径最终被计算机拼接完整路径为:C:Users\mi\Desktop\WEB\step1\static\demo.txt


-
现在我们切换到上一级路径去执行node ./step1/app.js;
app.js文件被找到并执行,但是fs.readFile读取失败。 -
为什么会读取失败?因为是在所处目录 "\WEB" 文件下执行执行app.js文件;
此时路径为:\WEB + 文件路径;
最终的路径是:"C:\Users\mi\Desktop\WEB\static\demo.txt", 中间少了路径\step
绝对路径 " __dirname "(当前文件所处的目录)

-
我们先把读取文件地址换成完整的磁盘路径(绝对路径),在任何目录下执行app.js文件都可以成功;
此方法的最大弊端就是移植文件的时候(如放到别的文件下、放在线上服务器等,这默认的读取路径就会找不到;每次都需要手动改读取路径) -
这时我们使用node.js提供的 "__dirname",它所代表的值不会随执行命令时的目录的变化而变化
绝对路径
扩展:node.js中path模块



网友评论