OwlCyberSecurity - MANAGER
Edit File: createtable.routes.js
// backend/routes/tableRoutes.js import express from 'express'; import bcrypt from 'bcrypt'; import pool from '../db.js'; const createtablerouter = express.Router(); createtablerouter.post('/table/:tableName', async (req, res) => { const { tableName } = req.params; const data = { ...req.body }; // Copy to avoid mutating original try { // 👉 Hash the password if the table is "login" and password exists if (tableName === 'login' && data.password) { data.password = await bcrypt.hash(data.password, 10); } const keys = Object.keys(data); const values = Object.values(data); const placeholders = keys.map(() => '?').join(', '); const columns = keys.join(', '); // ⚠️ `??` can only be used for identifiers (like table/column names), values must be `?` const sql = `INSERT INTO ?? (${columns}) VALUES (${placeholders})`; const result = await pool.query(sql, [tableName, ...values]); const insertedId = result[0].insertId; const [newRow] = await pool.query(`SELECT * FROM ?? WHERE id = ?`, [tableName, insertedId]); res.status(201).json(newRow[0]); } catch (err) { console.error('❌ Insert Error:', err); res.status(500).json({ error: 'Failed to insert data.' }); } }); export default createtablerouter;