在sqlite3配置文件中获取`app.getPath'userData'`,同时使用电子续集

问题描述

嗨,我必须创建一个离线电子应用程序,为此我要使用带有Sequelize作为ORM的sqlite3 Db。

我想将数据库文件存储在应用程序之外的Electron App的“用户数据”文件夹中。

我还创建了一个.sequelizerc文件,以使用自定义JS配置文件而不是普通的config.json文件

.sequelizerc 文件内容

const path = require('path');

module.exports = {
  'config': path.resolve('abc/config','config.js'),'models-path': path.resolve('abc','models'),'migrations-path': path.resolve('abc','migrations'),'seeders-path': path.resolve('abc','seeders')
}

sqlite3配置文件内容

const electron = require('electron');
console.log('electron')

console.log(electron)
console.log(electron.app)
console.log(electron.remote)
console.log(electron.ipcMain)

console.log(__dirname)
console.log('----------------------------------------------------')
console.log('1111111123231312123121231231231231231231321231231323')
console.log('----------------------------------------------------')


const storagePath = app.getPath('userData');
// const storagePath = '/Users/nimishgupta/Desktop/Work/projects';
console.log('----------------------------------------------------')
// console.log(app.getPath('userData'))
console.log('----------------------------------------------------')

module.exports = {
  development: {
    dialect: 'sqlite',storage: `${storagePath}/ulesson_development_db.sqlite3`
  },test: {
    dialect: 'sqlite',storage: `${storagePath}/ulesson_test_db.sqlite3`
  },production: {
    dialect: 'sqlite',storage: `${storagePath}/ulesson_production_db.sqlite3`
  }
};

models / index.js

'use strict';

const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';

console.log('1111111')
const config = require(__dirname + '/../config/config.js')[env];
const db = {};

let sequelize;
if (config.use_env_variable) {
  sequelize = new Sequelize(process.env[config.use_env_variable],config);
} else {
  // sequelize = new Sequelize(config.database,config.username,config.password,config);
  sequelize = new Sequelize(config);
}

fs
  .readdirsync(__dirname)
  .filter(file => {
    return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
  })
  .forEach(file => {
    const model = require(path.join(__dirname,file))(sequelize,Sequelize.DataTypes);
    db[model.name] = model;
  });

Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

我使用npx sequelize-cli db:migrate命令运行迁移。

我想知道如何访问配置文件中的电子模块?

我感到困惑和困惑,以获取在运行命令行任务时如何在配置文件中使用电子模块

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)