node-red-contrib-displayext-node
Version:
A node for software DisplayEXT
48 lines (39 loc) • 1.76 kB
JavaScript
const fs = require("fs");
const path = require("path");
module.exports = function(RED) {
function SaveDataNode(config) {
RED.nodes.createNode(this, config);
const node = this;
// Définition du fichier de sauvegarde dans le dossier du module
const dataFilePath = path.join(__dirname, "..", "dataMedia.json");
node.on("input", function(msg) {
if (msg.payload && typeof msg.payload === "object" && msg.payload.name) {
let savedData = [];
// Charger les données existantes
if (fs.existsSync(dataFilePath)) {
try {
savedData = JSON.parse(fs.readFileSync(dataFilePath, "utf8"));
} catch (error) {
node.error("Erreur de lecture du fichier JSON", error);
return;
}
}
// Ajouter la nouvelle donnée
savedData.push({ name: msg.payload.name });
// Sauvegarder dans le fichier
try {
fs.writeFileSync(dataFilePath, JSON.stringify(savedData, null, 2));
node.log("Nom de média sauvegardé !");
} catch (error) {
node.error("Erreur d'écriture dans le fichier JSON", error);
return;
}
// Retourner la confirmation
node.send({ payload: "Nom de média sauvegardé avec succès !" });
} else {
node.error("Format de payload incorrect !");
}
});
}
RED.nodes.registerType("save-dataMedia", SaveDataNode);
};