Electron не добавляет файл json в приложение - PullRequest
0 голосов
/ 29 марта 2020

Это мое первое электронное / узловое приложение, я пытаюсь использовать файл json в качестве хранилища данных. поэтому я создал простой index.json в папке приложения рядом с index.js|css|html

Я установил npm пакет jsonfile, который загружается просто отлично

Когда я пытаюсь загрузить В моем файле json EOF повышен, утверждая, что файла json нет, и я вижу, что на вкладке исходного кода DevTools моего файла json нет (не загружен)

enter image description here enter image description here

Я попытался принудительно перезагрузить из меню приложения электронов.

Вот мой код файлов, который читает мой json

const jsonfile = require('jsonfile')
const file = '/index.json';

var json;

jsonfile.readFile(file)
  .then(obj => json = obj)
  .catch(error => console.error(error))

enter image description here

------------ Редактировать

, исправляя имя пути до index.json или ./index.json возникает та же проблема

Ответы [ 2 ]

1 голос
/ 29 марта 2020

Вы можете использовать собственный модуль fs (файловая система).

let path = "index.json"
const fs = require('fs');
const json = JSON.parse(fs.readFileSync(path));
0 голосов
/ 30 марта 2020

Спасибо за вашу поддержку

Для меня проблема была больше в обработке файловой системы, чем в электронном.

Все, что я сделал, - это chmod моя папка проекта, чтобы убедиться, что я смогу прочитать и запишите в индекс. json хранилище данных

sudo chmod -R 777 /opt/workspaces/electron/myElectronPrpjectFolder

Затем для лучшего разрешения пути я использовал идею базового c, используемую в электронном типе архива, он более безопасен для ошибок

const path = require('path')

const file = path.join(__dirname,'index.json');

var json;
var html = "";// The returned object.


$(document).ready(function () {
    jsonfile.readFile(file)
        .then(obj => {
            json = JSON.parse(JSON.stringify(obj));
            console.log(JSON.stringify(json))
            parseIssues(json.children);
document.getElementById('a').innerHTML = html;
        })
        .catch(error => console.error(error))

});

Вы видите, что я использую JQuery в этом фрагменте, но он также работает без JQuery.

в резюме, улучшенная политика разрешения пути с предоставленными привилегиями для папки. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...