exports.id = 'csv_import'; exports.title = 'CsvImport'; exports.version = '1.0.0'; exports.group = 'Worksys'; exports.color = '#2134B0'; exports.input = 1; exports.output = ["red", "white"]; exports.click = false; exports.author = 'Daniel Segeš'; exports.icon = 'file-import'; exports.options = { edge: "undefined" }; exports.html = `
CSV Import
`; exports.readme = `# load csv to table db`; //config let delimiter = ";"; let uniqueColumn = "node"; let path = "flow/audit_test_panel.csv"; let startFrom = 1; let table = "nodes"; let mapImport = { 2: "node", 4: "tbname", 3: "line" }; const fs = require('fs'); exports.install = function(instance) { //console.log("csv import installed"); instance.on("close", () => { }) instance.on("data", (flowdata) => { var db = TABLE(table); db.clear(); let keys = Object.keys(mapImport); try { const data = fs.readFileSync(path, 'utf8') let lines = data.split("\n"); for(let i = startFrom; i < lines.length; i++) { let line = lines[i]; if(line === "") continue; let data = line.split(delimiter); if(data.length == 0) continue; let insertData = {}; keys.map(function(key){ let k = mapImport[key]; insertData[k] = data[key]; }); //console.log(insertData); db.insert(insertData, true).where(uniqueColumn, insertData[uniqueColumn]); } console.log("csv import finished"); instance.send(0, "csv import finished"); } catch (err) { console.error(err) } }) }