npm install express const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
}); import express from 'express';
const app = express(); res.send('Hello'); res.json({ message: 'Hello' }); res.status(404).send('Not Found');
res.status(201).json({ id: 1 }); res.sendFile('/path/to/file.html'); res.download('/path/to/file.pdf'); res.redirect('/new-url');
res.redirect(301, '/new-url'); res.render('index', { title: 'Home' }); app.get('/users', (req, res) => {
res.json(users);
}); app.post('/users', (req, res) => {
const user = req.body;
res.status(201).json(user);
}); app.put('/users/:id', (req, res) => {
// Update user
}); app.patch('/users/:id', (req, res) => {
// Partial update
}); app.delete('/users/:id', (req, res) => {
res.status(204).send();
}); app.all('/api/*', (req, res, next) => {
// Handle all methods
next();
}); app.get('/users/:id', (req, res) => {
const id = req.params.id;
res.json({ id });
}); app.get('/users/:userId/posts/:postId', (req, res) => {
const { userId, postId } = req.params;
}); // GET /search?q=express&page=2
app.get('/search', (req, res) => {
const { q, page } = req.query;
}); app.get('/users/:id?', (req, res) => {
// id is optional
}); app.get('/users/:id(\\d+)', (req, res) => {
// id must be digits
}); const router = express.Router();
router.get('/', (req, res) => {
res.json({ users: [] });
});
router.get('/:id', (req, res) => {
res.json({ id: req.params.id });
});
module.exports = router; const usersRouter = require('./routes/users');
app.use('/users', usersRouter); router.use((req, res, next) => {
// Runs for all routes in this router
next();
}); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(express.static('public'));
app.use('/assets', express.static('public')); app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
}); const auth = (req, res, next) => {
if (req.headers.authorization) {
next();
} else {
res.status(401).json({ error: 'Unauthorized' });
}
};
app.get('/protected', auth, (req, res) => {
res.send('Secret data');
}); app.get('/', middleware1, middleware2, (req, res) => {
res.send('Hello');
}); const asyncHandler = fn => (req, res, next) => {
Promise.resolve(fn(req, res, next)).catch(next);
};
app.get('/', asyncHandler(async (req, res) => {
const data = await fetchData();
res.json(data);
})); const cors = require('cors');
app.use(cors());
app.use(cors({ origin: 'http://example.com' })); const morgan = require('morgan');
app.use(morgan('dev')); const helmet = require('helmet');
app.use(helmet()); const compression = require('compression');
app.use(compression()); const cookieParser = require('cookie-parser');
app.use(cookieParser()); req.body // Parsed body (with body-parser) req.params // Route parameters req.query // Query string parameters req.headers
req.get('Content-Type')
req.header('Authorization') req.cookies // With cookie-parser req.method // GET, POST, etc. req.url
req.path
req.originalUrl req.ip
req.ips // With trust proxy req.protocol // http or https req.hostname // Must have 4 parameters
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({ error: 'Something went wrong' });
}); app.get('/error', (req, res, next) => {
const error = new Error('Not Found');
error.status = 404;
next(error);
}); app.get('/', async (req, res, next) => {
try {
const data = await fetchData();
res.json(data);
} catch (err) {
next(err);
}
}); // Place after all routes
app.use((req, res) => {
res.status(404).json({ error: 'Not Found' });
}); app.set('view engine', 'ejs');
app.set('views', './views'); app.get('/', (req, res) => {
res.render('index', { title: 'Home', user: req.user });
}); <!-- views/index.ejs -->
<h1><%= title %></h1>
<% if (user) { %>
<p>Welcome, <%= user.name %></p>
<% } %> //- views/index.pug
h1= title
if user
p Welcome, #{user.name} const session = require('express-session');
app.use(session({
secret: 'your-secret-key',
resave: false,
saveUninitialized: false,
cookie: { secure: true, maxAge: 3600000 }
})); // Set
req.session.userId = user.id;
// Get
const userId = req.session.userId;
// Destroy
req.session.destroy(); const jwt = require('jsonwebtoken');
const token = jwt.sign(
{ userId: user.id },
process.env.JWT_SECRET,
{ expiresIn: '1h' }
); const authMiddleware = (req, res, next) => {
const token = req.headers.authorization?.split(' ')[1];
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
req.user = decoded;
next();
} catch (err) {
res.status(401).json({ error: 'Invalid token' });
}
};