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