电子模块中的App对象和getAppPath会引发错误

时间:2018-04-27 21:37:23

标签: node.js angular electron

我的申请有一个奇怪的问题。我收到错误,我无法解决。首先,我安装了一个新项目,所以一切都很干净。有人发给我这个repo用于Angular,Electron和Nodejs应用程序。一切都很好,但后来我决定安装一个像sqlite3这样的嵌入式数据库。为此,我找到了NeDB,该模块非常适合我的需求。首先我遇到了问题,与我的一般问题无关,我无法创建数据库文件。所以我读到我只能在我的应用程序路径中创建文件,因为有关Electron的内容以及在浏览器中工作的内容。

我找到了来自Electron模块的getAppPath()对象中实现的app方法。这开始了问题。几个小时我试图从这个对象获取应用程序路径。最后,我写了这段代码。

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

我找到this posting,但我真的不明白帖子试图告诉我的内容。我按照链接,但似乎没有任何帮助。有人有想法吗?

0 个答案:

没有答案