假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。
实现功能
如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。
实现方法
在node.js只提供了一个 dirname全局变量。通过 dirname可以获得“C:wwwrootyidataserver”。这时需要用到path。
首先
import path from 'path'; (ES6)或var path = require ( 'path ' ); path.join(dirname,'../')
即可获取到node.js的项目根目录。
path.join(dirname,'../app/img/favicon.ico')
即可获取目标文件。
由上面的例子可知,path.join将多个参数组合成一个 path,因此我们只需要参照路径表示方法合并即可。比如js文件在第三层目录,那么项目根目录就是path.join(__dirname,'../../../') 。
path.resolve(".")
总结
也可以直接获取项目根目录,但是要注意的是使用这个方法在一些情况下存在问题,以前遇到过,想不起来了。大家留意下,有问题可以留言交流。