首页 > 解决方案 > 为简单的应用程序创建相对路径

问题描述

index.js

var fs = require('fs');

var obj = JSON.parse(fs.readFileSync('/Users/amelie/Documents/project/config.json', 'utf8'));

我使用$pkg index.js . 该应用程序连续从项目文件夹中名为 config.json 的文件中读取数据。

但是,项目文件夹中的 config.json 文件和 test-macOS 文件将被其他用户下载(通过下载项目文件夹)。这将更改应用程序必须读取的文件 config.json的绝对路径/Users/amelie/Documents/project/config.json' 。有没有办法为所有用户定义一个相同的路径,以便下载这个项目文件夹的所有用户可以使用应用程序连续读取这个文件?

我尝试使用相对路径 ./config.JSON 但似乎一旦我编译 index.js 我得到一个错误

/Users/amelie/Documents/project/test-macos ;

exit; internal/fs/utils.js:312 throw err; ^ 

Error: ENOENT: no such file or directory, open './config.JSON 

就像 test-macOS 文件和 config.json 不在同一个目录中一样(但是它们在同一个“项目”文件夹中)

标签: node.jsjsonpathrelative-path

解决方案


在 nodejs 中有一个可以使用的环境变量,__dirname它为您提供所在目录的绝对路径。因此,如果您尝试获取 config.json 的路径并且它与您的项目位于同一目录中,它应该看起来像__dirname + "/config.json" (目录名前的 2 个下划线)


推荐阅读