UNPKG

node-red-contrib-displayext-node

Version:

A node for software DisplayEXT

46 lines (37 loc) 1.65 kB
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, "..", "data.json"); node.on("input", function(msg) { if (msg.payload && typeof msg.payload === "object") { 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); } } // Ajouter la nouvelle donnée savedData.push(msg.payload); // Sauvegarder dans le fichier try { fs.writeFileSync(dataFilePath, JSON.stringify(savedData, null, 2)); node.log("Données sauvegardées !"); } catch (error) { node.error("Erreur d'écriture dans le fichier JSON", error); } // Retourner la confirmation node.send({ payload: "Données sauvegardées avec succès !" }); } else { node.error("Format de payload incorrect !"); } }); } RED.nodes.registerType("save-data", SaveDataNode); };