Jul 21, 2024
const http = require('http');
const server = http.createServer((req, res) => {
if(req.url === '/'){
res.write('<h1>Home Page</h1>');
res.end();
} else if(req.url === '/about') {
res.write('<h1>About Page</h1>');
res.end();
} else {
res.write('<h1>404 - Page not found</h1>');
res.end();
}
});
server.listen(5000);
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('<h1>Home Page</h1>');
});
app.get('/about', (req, res) => {
res.send('<h1>About Page</h1>');
});
app.all('*', (req, res) => {
res.status(404).send('<h1>404 Page not found</h1>');
});
app.listen(5000, () => {
console.log('Server is listening on port 5000...');
});
``*
app.use(express.static('./public'));
const logger = (req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
};
app.use(logger);
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
express.json() and express.urlencoded({ extended: false }).app.post('/api/people', (req, res) => {
const { name } = req.body;
if (!name) {
return res.status(400).json({ success: false, msg: 'Please provide name value' });
}
res.status(201).send({ success: true, person: name });
});
2. **Read** (GET)
```javascript
app.get('/api/people', (req, res) => {
res.status(200).json({ success: true, data: people });
});
app.put('/api/people/:id', (req, res) => {
const { id } = req.params;
const { name } = req.body;
const person = people.find((person) => person.id === Number(id));
if (!person) {
return res.status(404).json({ success: false, msg: `No person with id ${id}` });
} else {
const newPeople = people.map((person) => {
if (person.id === Number(id)) {
person.name = name;
}
return person;
});
res.status(200).json({ success: true, data: newPeople });
}
});
4. **Delete** (DELETE)
```javascript
app.delete('/api/people/:id', (req, res) => {
const { id } = req.params;
const person = people.find((person) => person.id === Number(id));
if (!person) {
return res.status(404).json({ success: false, msg: `No person with id ${id} `});
}
const newPeople = people.filter((person) => person.id !== Number(id));
return res.status(200).json({ success: true, data: newPeople });
});
{ "name": "Susan" }Using Routers
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => ...);
// Export the router
module.exports = router;
Controllers: Separate business logic from routes.
const getPeople = (req, res) => {
res.status(200).json({ success: true, data: people });
};
// Export controllers
module.exports = { getPeople };