Не удалось вызвать методы объекта базы данных nedb из электронного приложения (основной процесс) с использованиемactjs - PullRequest
0 голосов
/ 01 февраля 2019

Моя цель - создать постоянный локальный файл для nedb, так как по умолчанию nedb использует indexedDB для браузера, если создает хранилище данных из процесса рендерера (веб-страницаactjs), поэтому я решил создать хранилище данных из основного процесса, чтобы постоянный локальный файлсоздается на основе многих ответов от stackoverflow

Так что мне удалось создать объект базы данных nedb из основного процесса, и даже файлы database.json создаются так, как я хотел

D:/node4/projectz/react_stuff/bizguy/src/services/offline_db/product.js:33
const {remote} = window.require('electron')
const  productDB = remote.getGlobal('productDB'),
        categoriesDB = remote.getGlobal('categoriesDB')

> 33 | productDB.find({}, function(err,docs){
  34 |      if (err) {
  35 |        console.log('something is wrong with offline products db'

)

основной процесс (электронное приложение)

const {app, BrowserWindow, Menu,Tray,shell} = require('electron')
const path = require('path')
const  DataStore = require('nedb')
const productDB = new DataStore({
                filename: path.join(userDirectory,'products.json'),
                autoload: true,// automatically load the database
                timestampData: true// automatically add and manage the fields createdAt and updatedAt
          }),

       categoriesDB = new DataStore({
        filename: path.join(userDirectory, 'prod_category.json'),
        autoload: true,
        timestampData:true
    })
//make them global variables
global.productsDB = productDB;
global.categoriesDB = categoriesDB

Я ожидаю, что методы поиска и вставки для базы данных nedb будут хорошо работать в процессе визуализации, но вместо этого я получаю эту ошибку TypeError: Невозможно прочитать свойство'find' of undefined через процесс рендеринга (реагирует на приложение), как будто хранилища данных nedb не определены

...