Create a REST API with Express—routing, middleware, validation, and database connection.
Node.js and Express power many modern APIs. Here’s how to build one from scratch.
Node.js and Express backend
Setup
Initialize — npm init -y; add "type": "module" for ESM. Install express. Entry point: create app, mount routes, app.listen(port).
Routing — app.get, app.post, etc. Use express.Router() to group routes. Params: req.params, query: req.query, body: req.body (need express.json()).
Middleware — CORS, logging, error handler. Use next() to pass to the next middleware. Put error handler last with four args (err, req, res, next).
Validation — Use express-validator or Zod to validate body and params. Return 400 with error details when invalid.
Database — Use pg, mongoose, or Prisma. Connect once at startup; use connection pool. Keep queries in a service or repository layer.
Backend runtime preference (JS/TS survey):
Node.js framework usage
Best practices
Use async/await; wrap in try/catch or an async error wrapper. Use environment variables for config. Add health and readiness endpoints. Log and monitor in production.
Express in 100 seconds:
Takeaway
Express is minimal and flexible. Add structure (routes, services, validation) as the app grows. Consider Fastify or NestJS when you need performance or a full framework.