0% found this document useful (0 votes)
18 views3 pages

Hai

Uploaded by

panchuabhii
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views3 pages

Hai

Uploaded by

panchuabhii
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

// Import required modules

const express = require('express');


const mysql = require('mysql');
//const bodyParser = require('body-parser');

// Create an Express application


const app = express();
const PORT = 3000;

// configure the app to use bodyParser()


//app.use(bodyParser.urlencoded({
// extended: true
//}));
//app.use(bodyParser.json());
app.use(express.urlencoded({ extended: true }));
// This is required to handle urlencoded data
app.use(express.json());
// This to handle json data coming from requests mainly post

// MySQL connection setup


const db = mysql.createConnection({
host: 'localhost',
user: 'root', // Replace with your MySQL username
password: 'cucek123', // Replace with your MySQL password
database: 'user_database',
});

// Connect to MySQL
db.connect((err) => {
if (err) {
console.error('Error connecting to MySQL:', err.message);
process.exit(1);
}
console.log('Connected to MySQL database!');
});

// 1. Create a new user


app.post('/users', (req, res) => {
const { name, email, age } = req.body;
console.log('Request body:', req.body);
data = {name:name,email:email,age:age};
// Send a response back to the client
res.status(200).json(
{ data: data, message: 'Data received successfully' });
if (!name || !email || !age) {
return res.status(400).json({ error: 'All fields are required: name, email, age' });
}

const query = 'INSERT INTO users (name, email, age) VALUES (?, ?, ?)';
console.log('Executing query:', query, values);
db.query(query, [name, email, age], (err, result) => {
if (err) {
console.error('Error creating user:', err.message);
return res.status(500).json({ error: 'Database error' });
}
res.status(201).json({ message: 'User created successfully', userId: result.insertId });
});
});

// 2. Retrieve all users


app.get('/users', (req, res) => {
const query = 'SELECT * FROM users';
db.query(query, (err, results) => {
if (err) {
console.error('Error retrieving users:', err.message);
return res.status(500).json({ error: 'Database error' });
}
res.status(200).json(results);
});
});

// 3. Update user details by ID


app.put('/users/:id', (req, res) => {
const { id } = req.params;
const { name, email, age } = req.body;

if (!name && !email && !age) {


return res.status(400).json({ error: 'At least one field (name, email, age) must be provided
for update' });
}

const fields = [];


const values = [];
if (name) { fields.push('name = ?'); values.push(name); }
if (email) { fields.push('email = ?'); values.push(email); }
if (age) { fields.push('age = ?'); values.push(age); }
values.push(id);

const query = `UPDATE users SET ${fields.join(', ')} WHERE id = ?`;


db.query(query, values, (err, result) => {
if (err) {
console.error('Error updating user:', err.message);
return res.status(500).json({ error: 'Database error' });
}
if (result.affectedRows === 0) {
return res.status(404).json({ error: 'User not found' });
}
res.status(200).json({ message: 'User updated successfully' });
});
});

// 4. Delete a user by ID
app.delete('/users/:id', (req, res) => {
const { id } = req.params;

const query = 'DELETE FROM users WHERE id = ?';


db.query(query, [id], (err, result) => {
if (err) {
console.error('Error deleting user:', err.message);
return res.status(500).json({ error: 'Database error' });
}
if (result.affectedRows === 0) {
return res.status(404).json({ error: 'User not found' });
}
res.status(200).json({ message: 'User deleted successfully' });
});
});

// Start the server


app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});

You might also like