const express = require('express'); const http = require('http'); const mysql = require('mysql'); const bodyParser = require('body-parser'); const cors = require('cors') const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); const app = express(); app.use(cors()) const server = http.createServer(app); app.use(bodyParser.json()); // MySQL connection const db = mysql.createConnection({ host: 'localhost', port: 3306, user: 'root', database: 'mobile' }); db.connect(err => { if (err) { console.error('Database connection failed:', err.stack); return; } console.log('Connected to database.'); }); app.get('/', (req, res) => { res.status(200).end(); }); // CRUD routes app.get('/drug', (req, res) => { db.query('SELECT * FROM drug', (err, results) => { if (err) throw err; res.json(results); }); }); app.post('/drug', (req, res) => { const newItem = req.body; delete newItem.id; db.query('INSERT INTO drug SET ?', newItem, (err, result) => { if (err) throw err; emit('itemAdded', { id: parseInt(result.insertId), ...newItem }); res.status(201).json({ id: parseInt(result.insertId), ...newItem }); }); }); app.put('/drug', (req, res) => { const updatedItem = req.body; const id = parseInt(req.query.id); db.query('UPDATE drug SET ? WHERE id = ?', [updatedItem, id], (err) => { if (err) throw err; emit('itemUpdated', { id, ...updatedItem }); res.status(200).json({ id, ...updatedItem }); }); }); app.delete('/drug', (req, res) => { const id = parseInt(req.query.id); db.query('DELETE FROM drug WHERE id = ?', [id], (err) => { if (err) throw err; emit('itemDeleted', { id }); res.status(204).end(); }); }); // WebSocket connection wss.on('connection', (socket) => { console.log('New client connected'); socket.on('disconnect', () => { console.log('Client disconnected'); }); socket.on('message', (message) => { console.log('Message received:', message); }); socket.on('close', () => { console.log('Client disconnected'); }); socket.on('error', (err) => { console.error('Error:', err); }); }); wss.on('close', () => { console.log('Client disconnected'); }); wss.on('error', (err) => { console.error('Error:', err); }); const emit = (event, data) => { wss.clients.forEach(client => { if (client.readyState === WebSocket.OPEN) { client.send(JSON.stringify({ event, data })); } }); }; const PORT = process.env.PORT || 3000; server.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });