Объект приложения в электронном модуле и ошибка getAppPath генерирует ошибку - PullRequest
0 голосов
/ 28 апреля 2018

У меня странная проблема с моим приложением. Я получаю ошибку и не могу ее решить. Сначала я установил новый проект, так что все чисто. Кто-то прислал мне это репо для использования в приложениях Angular, Electron и Nodejs. Все работало нормально, но затем я решил установить встроенную базу данных, такую ​​как sqlite3. Для этого я нашел NeDB, и модуль идеально подходит для моих нужд. Сначала у меня была проблема, я не имею ничего общего с моей общей проблемой: я не могу создать файл базы данных. Поэтому я прочитал, что могу создавать файлы только по пути к моему приложению, потому что что-то касается Electron, и это работает в браузере.

Я нашел метод getAppPath(), который реализован в моем объекте app из модуля Electron. Здесь начинается проблема. В течение нескольких часов я пытался получить путь приложения от этого объекта. Наконец, я написал этот код.

import { Injectable } from '@angular/core';
var nedb = require('nedb');
import { app } from 'electron';

import * as path from 'path';

@Injectable()
export class DatabaseService {
  app: typeof app;
  Database: any;

  constructor() {
    this.app = window.require("electron").app;
    this.Database = new nedb({ filename: path.join(this.app.getAppPath(), '/diary.db'), autoload: true, timestampData: true });

    var scott = {  
      name: 'Scott',
      twitter: '@ScottWRobinson'
    };
  
    this.Database.insert(scott, function(err, doc) {  
      console.log('Inserted', doc.name, 'with ID', doc._id);
    });
  }
}

И я получаю эту ошибку.

enter image description here

Я нашел это сообщение , но я не совсем понимаю, что пост пытается мне сказать. Я перешел по ссылкам, но ничего не помогло. У кого-нибудь есть идея?

...