node-red-contrib-displayext-node
Version:
A node for software DisplayEXT
37 lines (31 loc) • 1.32 kB
JavaScript
const fs = require("fs");
const path = require("path");
module.exports = function (RED) {
function LoadDataNode(config) {
RED.nodes.createNode(this, config);
const node = this;
// Fichier de stockage des données
const dataFilePath = path.join(__dirname, "..", "dataMedia.json");
// Fonction pour charger les noms des médias sous forme [{ "nameMedia": "..." }]
function loadData() {
if (fs.existsSync(dataFilePath)) {
try {
const data = JSON.parse(fs.readFileSync(dataFilePath, "utf8"));
if (Array.isArray(data)) {
return data.map(item => ({ nameMedia: item.name })).filter(item => item.nameMedia);
}
} catch (error) {
node.error("Erreur de lecture du fichier JSON", error);
}
}
return []; // Retourne un tableau vide en cas d'erreur ou si le fichier est vide
}
// Réagir aux entrées
node.on("input", function (msg) {
if (msg.payload === "reload") {
node.send({ payload: loadData() });
}
});
}
RED.nodes.registerType("load-dataMedia", LoadDataNode);
};