Я использую Sequelize с MariaDB в своем настольном приложении windows 7. Однако процесс рендеринга не может получить доступ к sequelize или каким-либо моделям, определенным в файлах моделей.
Эта проблема не возникает в Linux . Мне нужно только создать объект sequelize в основном процессе и пройти аутентификацию только один раз. После этого он доступен для любой страницы в процессе рендеринга.
Когда я выполняю отладку, я обнаружил, что главная страница (индекс. html), загруженная в рендерер, должна повторно аутентифицировать продолжение подключение. Но проблема здесь в том, что когда я перехожу на другую страницу по ссылкам на главной странице, соединение снова недоступно. Также я не могу повторно пройти аутентификацию, так как средство визуализации уже аутентифицировалось один раз. Вот мой исходный код и код отладки, который я запускал.
основной процесс:
const {app, BrowserWindow} = require('electron')
const Sequelize = require('sequelize')
const connectStr = 'xxxxxx' //hidden for security purpose
const sequelize = new Sequelize(connectStr)
function createWindow() {
sequelize.authenticate().then(promise => {
console.log('Connection has been established successfully.')
let mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
zoomFactor: 1.0
}
})
mainWindow.loadFile('index.html')
// mainWindow.webContents.openDevTools()
}).catch(err => {
console.error('Unable to connect to the database:', err)
})
}
app.allowRendererProcessReuse = true
app.whenReady().then(createWindow)
процесс рендеринга: (работает с linux, но не windows)
const {remote} = require('electron')
const mainProcess = remote.require('./main')
const Bank = require('../models').Bank
$(document).ready(() => {
Bank.findAll({}).then(banks => { //code })
})
Вот отладочный код Я вставил js файл индекса. html
const Sequelize = require('sequelize')
const Bank = require('../models').Bank
const connectStr = 'xxxxxx' //hidden for security purpose
const sequelize = new Sequelize(connectStr)
//following will work here only once. Once visited another page this also fails.
sequelize.authenticate().then(promise => {
console.log('Connection has been established successfully.')
Bank.create({
name: 'CBL'
}).then(done => {
console.log('OK')
})
})