$devvkit learn --librarie express.js-guide
Express.js Guide
[nodejs][http][server][api]
JavaScript / TypeScript
Install
npm install express npm install -D @types/express
Express is the most popular Node.js web framework and the foundation for NestJS, Next.js API routes, and more.
The middleware pattern is its killer feature. Every request passes through a pipeline of functions that can inspect, modify, or short-circuit it.
Express 5 introduces async error handling and improved path matching.
Setup
Basic server— Create a server.
import express from 'express';
const app = express();
app.listen(3000, () => console.log('running'));Routing
GET route— Handle GET requests.
app.get('/users', (req, res) => { res.json({ users: [] }); });Route params— Capture dynamic segments.
app.get('/users/:id', (req, res) => res.json({ id: req.params.id }));Query params— Access query string.
app.get('/search', (req, res) => res.json({ q: req.query.q }));Middleware
JSON body parser— Parse JSON bodies.
app.use(express.json());
CORS— Enable CORS.
import cors from 'cors'; app.use(cors());
Custom middleware— Log every request.
app.use((req, res, next) => { console.log(' '); next(); });Request Handling
POST with JSON— Handle POST with payload.
app.post('/users', (req, res) => { const { name } = req.body; res.status(201).json({ id: 1, name }); });Error Handling
Error middleware— Catch errors globally.
app.use((err, req, res, next) => { console.error(err.stack); res.status(500).json({ error: 'Broken' }); });Testing
Supertest— Integration test.
import request from 'supertest';
import app from '../app';
it('returns users', async () => {
const res = await request(app).get('/users');
expect(res.status).toBe(200);
});