Understanding Generator Express
Generator-express is a powerful tool to kickstart your Express.js applications with a robust and well-structured codebase. It helps developers set up their Express projects quickly with a variety of boilerplates and configurations.
Installation
npm install -g generator-express
Creating a New Express Project
Create a new directory and navigate into it:
mkdir my-express-app cd my-express-app
Now, scaffold a new Express application using generator-express:
yo express
Useful API Examples
Basic Routing
app.get('/', (req, res) => { res.send('Hello World!'); });
Route Parameters
app.get('/users/:userId', (req, res) => { const userId = req.params.userId; res.send(`User ID: ${userId}`); });
Middleware Usage
const myLogger = (req, res, next) => { console.log('Logged'); next(); }; app.use(myLogger);
Serving Static Files
app.use(express.static('public'));
Handling Errors
app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Something broke!'); });
Working with JSON
app.use(express.json()); app.post('/users', (req, res) => { const newUser = req.body; res.send(`User ${newUser.name} added!`); });
Complete Application Example
Here is an example of a complete Express application using the APIs mentioned above:
const express = require('express'); const app = express(); const port = 3000; app.use(express.json()); const myLogger = (req, res, next) => { console.log('Logged'); next(); }; app.use(myLogger); app.get('/', (req, res) => { res.send('Hello World!'); }); app.get('/users/:userId', (req, res) => { const userId = req.params.userId; res.send(`User ID: ${userId}`); }); app.post('/users', (req, res) => { const newUser = req.body; res.send(`User ${newUser.name} added!`); }); app.use(express.static('public')); app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Something broke!'); }); app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`); });
Hash: 73c943db51e67c72e6a6492f1550d15efbdccce046f5553d362c2ee917ca847c