node.js - 为简单的应用程序创建相对路径
问题描述
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 不在同一个目录中一样(但是它们在同一个“项目”文件夹中)
解决方案
在 nodejs 中有一个可以使用的环境变量,__dirname
它为您提供所在目录的绝对路径。因此,如果您尝试获取 config.json 的路径并且它与您的项目位于同一目录中,它应该看起来像__dirname + "/config.json"
(目录名前的 2 个下划线)
推荐阅读
- c - 部件号 P89LPC933935 的装配代码
- vb.net - 获取列表视图中每个文件的文件大小
- parceljs - 如何使用 Parcel 将资产与应用程序的其余部分分开构建
- java - 无法使用 StringBuilder 替换字符串中的“null”字符
- c - 有没有办法在 C 中更改具有动态大小的字符串数组的特定索引的值?
- javascript - 按对象的子数组最大日期对对象数组进行排序
- reactjs - 与 Redux Thunk 结合使用时,React Native Redux Persist 不持久化状态
- asp.net-core-mvc - 公共托管服务器中的 ASP.NET Core 3.1 部署问题
- bash - 根据特定字符查找和重命名目录
- cocoa - NSApplication 箭头键的响应链