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}`); });
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter