Saltar al contenidoPedro Farbo
Lección 3 / 2550 min

Primer Servidor Express

Primer Servidor Express

Vamos a crear nuestro primer servidor HTTP con Express y TypeScript.

Instalando Express

bash
npm install expressnpm install -D @types/express

Servidor Básico

typescript
// src/server.tsimport express from 'express'; const app = express();const PORT = process.env.PORT || 3000; // Middleware JSONapp.use(express.json()); // Primera rutaapp.get('/', (req, res) => {  res.json({ message: '¡Bienvenido a la API de E-commerce!' });}); app.listen(PORT, () => {  console.log(`🚀 Servidor ejecutándose en http://localhost:${PORT}`);});

Ejecutando el Servidor

bash
npm run dev

Accede a http://localhost:3000 en el navegador.

Métodos HTTP

typescript
// GET - Buscar datosapp.get('/products', (req, res) => {  res.json([{ id: 1, name: 'iPhone' }]);}); // POST - Crear datosapp.post('/products', (req, res) => {  const { name, price } = req.body;  res.status(201).json({ id: 2, name, price });}); // PUT - Actualizar completamenteapp.put('/products/:id', (req, res) => {  const { id } = req.params;  res.json({ id, ...req.body });}); // DELETE - Eliminarapp.delete('/products/:id', (req, res) => {  res.status(204).send();});

Request y Response

typescript
app.get('/products/:id', (req, res) => {  // Parámetros de URL  const { id } = req.params;   // Query string (?page=1&limit=10)  const { page, limit } = req.query;   // Cuerpo del request (POST, PUT)  const body = req.body;   // Headers del request  const auth = req.headers.authorization;   // Respuesta JSON  res.status(200).json({    success: true,    data: { id, page, limit }  });});

Códigos de Estado HTTP

CódigoSignificado
200Éxito
201Creado
204Sin contenido
400Request inválido
401No autorizado
404No encontrado
500Error del servidor

Resumen

  • ✅ Servidor Express ejecutándose
  • ✅ Métodos HTTP (GET, POST, PUT, DELETE)
  • ✅ Parámetros, query string y body
  • ✅ Respuestas estandarizadas

Próxima clase: Rutas y Middlewares! 🚀

¿Te gustó el contenido? ¡Tu contribución ayuda a mantener todo online y gratuito!

PIX:0737160d-e98f-4a65-8392-5dba70e7ff3e