У меня странная проблема с моим приложением. Я получаю ошибку и не могу ее решить. Сначала я установил новый проект, так что все чисто. Кто-то прислал мне это репо для использования в приложениях 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);
});
}
}
И я получаю эту ошибку.
Я нашел это сообщение , но я не совсем понимаю, что пост пытается мне сказать. Я перешел по ссылкам, но ничего не помогло. У кого-нибудь есть идея?