Anul 3 Semestrul 1
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
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}`);
|
||||
});
|
||||
Reference in New Issue
Block a user