const express = require('express');
const app = express();
const port = 3000;
// Middleware to parse JSON bodies
app.use(express.json());
// In-memory storage for users (as a mock database)
let users = [
{ id: 1, name: 'Alice', age: 30, email: 'alice@example.com' },
{ id: 2, name: 'Bob', age: 25, email: 'bob@example.com' }
];
// GET all users
app.get('/users', (req, res) => {
res.json(users);
});
// GET user by ID
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).send('User not found');
res.json(user);
});
// POST a new user
app.post('/users', (req, res) => {
const { name, age, email } = req.body;
// Simple validation
if (!name || !age || !email) {
return res.status(400).send('Please provide name, age, and email');
}
const newUser = {
id: users.length + 1,
name,
age,
email
};
users.push(newUser);
res.status(201).json(newUser);
});
// PUT update user by ID
app.put('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (!user) return res.status(404).send('User not found');
const { name, age, email } = req.body;
// Update user fields
user.name = name || user.name;
user.age = age || user.age;
user.email = email || user.email;
res.json(user);
});
// DELETE user by ID
app.delete('/users/:id', (req, res) => {
const userIndex = users.findIndex(u => u.id === parseInt(req.params.id));
if (userIndex === -1) return res.status(404).send('User not found');
const deletedUser = users.splice(userIndex, 1);
res.json(deletedUser[0]);
});
// Start the server
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
index.js
----------
const express = require('express');
const fetch = require('node-fetch');
const app = express();
const port = 3000;
app.set('view engine', 'ejs');
app.set('views', __dirname + '/views');
// Route to fetch users and render table
app.get('/users', async (req, res) => {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/users');
const users = await response.json();
res.render('users', { users });
} catch (err) {
res.status(500).send('Failed to fetch data');
}
});
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
Comments