如何在electronjs应用程序中读取配置文件

0tdrvxhp  于 2022-12-16  发布在  Electron
关注(0)|答案(2)|浏览(852)

这是我第一次使用电子JS和nodejs。我已经建立了一个小应用程序,从数据库读取一些记录并更新它们。一切都很好。我有一个配置文件与数据库凭据,但当我建立一个便携式赢应用程序,我不知道如何读取配置文件,我想放在旁边的exe。我想有容易访问的文件,这样我就可以在不同的数据库上运行相同的应用程序。
有人能告诉我我想要的是否可能以及如何实现吗?我已经尝试获得exe的位置,但我不能。我也读了很多主题,但似乎没有解决我的问题(我可能做错了什么)。
我正在使用electron-builder来构建我的应用程序。
先谢了。
编辑#1
我的配置文件是

{
    "user" :"X",
    "password" :"X",
    "server":"X",
    "database":"X",
    "options":
    {
        "trustedconnection": true,
        "enableArithAbort" : true,
        "trustServerCertificate": true
    }
}

这是我在使用npm start运行项目时所拥有和工作的

const configRootPath = path.resolve(__dirname,'dbConfig.json');
dbConfig = JSON.parse(fs.readFileSync(configRootPath, { encoding: 'utf-8' }));

但是,当我构建它时,应用程序正在另一个位置查找该文件,该位置与可执行文件所在的位置不同。

b4lqfgs4

b4lqfgs41#

使用Electron的app.getPath(name)函数将获得您要查找的路径,无论您使用的是哪种OS(操作系统)。
除非您的应用程序写入dbConfig.json文件,否则用户可能很难准确了解他们应该将数据库配置文件放在何处,因为每个操作系统都将运行并将应用程序数据存储在不同的目录中。或者,您的应用程序可以代表用户创建配置文件(自动或通过html表单),并将其保存到应用程序“已知”的位置。
用户的应用程序数据目录是存储应用程序特定配置文件的常见位置。应用程序名称自动修改到该目录后,可以找到该目录,如下所示。

const electronApp = require('electron').app;

let appUserDataPath = electronApp.getPath('userData');

console.log(appUserDataPath );

在您的用例中,以下内容将适用。

const electronApp = require('electron').app;

const nodeFs = require('fs');
const nodePath = require('path');

const configRootPath = nodePath.join(electronApp.getPath('userData'), 'dbConfig.json');

dbConfig = JSON.parse(nodeFs.readFileSync(configRootPath, 'utf-8'));

console.log(configRootPath);
console.log(dbConfig);
kyvafyod

kyvafyod2#

您可以尝试使用electron-store来存储配置。
Electron没有内置的方式来保存用户偏好和其他数据。这个模块会为你处理这些,所以你可以专注于构建你的应用。数据保存在app.getPath('userData ')中名为config.json的JSON文件中。

相关问题