Зеркальный модуль Magi c с node_helper. js извлечение данных из URL - PullRequest
0 голосов
/ 24 марта 2020

Я борюсь с моим первым модулем Magi c Mirror ... Основная идея c - читать содержимое текстового файла, расположенного на локальном веб-сервере (URL), и просто отображать его на экране .. Это то, как далеко я получил:

anzeige. js

    Module.register("anzeige",{

    defaults: {
        text: "Hier könnte ihre Werbung stehen"
        refreshInterval: 1000 * 10   //refresh every 10sec
    },
    getTemplate: function () {
        return "anzeige.njk";
    },
    start: function() {
        Log.info('Starting module: ' + this.name);
        this.loaded = false;
        this.sendSocketNotification('CONFIG', this.config);
    },
//Override dom generator.
   getDom: function() {
        var output;
        output = this.t2 ;
        var wrapper = document.createElement("div");
        // create a span to hold it all
        var inhalt=document.createElement("span");
        // create a text element for each part
        inhalt.appendChild(document.createTextNode(output));
        wrapper.appendChild(inhalt);
        return wrapper;
    },

    handover: function(data) {
        if (!this.data) {
            return;
        }
        this.t2 = data;
        return;
    },

   socketNotificationReceived: function(notification, payload) {
            if (notification === "STARTED") {
                this.updateDom();
            }
            else if (notification === "DATA") {
                this.loaded = true;
                this.handover(payload);
                this.updateDom();
            }
    }
});

node_helper. js

var fetch = require("node-fetch");
var NodeHelper = require("node_helper");

module.exports = NodeHelper.create({
    config: {},
    updateTimer: null,
    updateProcessStarted: false,
    start: function() {
        this.started = false;
        this.config = null;
    },

    getData: function() {
        var self = this;
        var url = "http://192.168.178.39/aussen1.txt";
        fetch(url).then(function(response) {
            return response.text().then(function(text) {
            self.sendSocketNotification("DATA", text);
            });
        });
        setTimeout(function() { self.getData(); }, this.config.refreshInterval);
    },
    socketNotificationReceived: function(notification, payload) {
        var self = this;
        if (notification === 'CONFIG' && self.started == false) {
            self.config = payload;
            self.sendSocketNotification("STARTED", true);
            self.getData();
            self.started = true;
        }
    }    
});

Так как я начинающий с javascript и magi c mirror, самый простой подход был бы предпочтительным, если вышеприведенное слишком сложное или неработоспособное .... Я уже пытался получить данные в модуле. js скрипт, но не удалось, возможно, потому что я выбрал не то место внутри скрипта или из-за других ошибок ...

Кто знает, как это сделать лучше ??

...