/
h0tnanny
/
IotPlatform
Обзор
Документация
Войти
/
h0tnanny
/
IotPlatform
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
database/fix_action_code.js
56 строк
2 KB
h0tnanny
изоляция при помощи isolated-vm
07 фев 2026, 01:48
07 фев 2026, 01:48
5a1137c
Код
Авторство
О чём код?
/** * Обновляет старый синтаксис context.variableList.get() → variables. * для совместимости с новой песочницей node:vm * * Запуск: node database/fix_action_code.js */ const { Pool } = require('pg'); const pool = new Pool({ host: 'localhost', port: 5433, database: 'iot_platform', user: 'postgres', password: 'postgres', }); async function fix() { const client = await pool.connect(); console.log('Обновление ActionNode кода для песочницы node:vm...\n'); const updates = [ [ 'node-high-temp', 'variables.alertMessage = "⚠️ ВНИМАНИЕ: Температура " + variables.temperature + "°C превышает норму!"; console.log(variables.alertMessage);', ], [ 'node-normal-temp', 'variables.alertMessage = "✓ Температура в норме: " + variables.temperature + "°C"; console.log(variables.alertMessage);', ], [ 'node-increment', 'variables.counter = variables.counter + 1; console.log("Счетчик: " + variables.counter);', ], [ 'node-loop-end', 'console.log("✓ Цикл завершен. Финальное значение: " + variables.counter);', ], ]; for (const [id, code] of updates) { const res = await client.query( `UPDATE workflow_nodes SET config = jsonb_set(config, '{code}', $1::jsonb) WHERE id = $2 RETURNING id`, [JSON.stringify(code), id] ); console.log(` ${id}: ${res.rowCount ? 'обновлён' : 'не найден'}`); } client.release(); await pool.end(); console.log('\nГотово!'); } fix().catch((e) => { console.error('Ошибка:', e); process.exit(1); });