Tema 10 · Node.js & Python PaaS

Despliegue de APIs y Aplicaciones en Node.js (Express) y Python (Flask)

Aprende a configurar Alwaysdata como servidor de aplicaciones para microservicios y APIs REST desarrolladas en Node.js (Express) o Python (Flask/Django).

Un Entorno PaaS Verdaderamente Políglota

Muchos estudiantes de backend aprenden Node.js con Express o Python con Flask/FastAPI además de PHP. Alwaysdata te permite alojar estos proyectos sin costo adicional y sin necesidad de configurar un proxy inverso complejo en Nginx desde cero.

Configuración de una Aplicación Node.js en Alwaysdata

  1. En el panel de Alwaysdata, dirígete a Web ➔ Sites y edita tu sitio (o crea uno nuevo).
  2. En el selector Type, cambia de PHP a Node.js.
  3. Selecciona la versión de Node.js deseada (por ejemplo, Node.js 20 LTS o 22).
  4. Script path: Especifica el archivo principal que arranca tu servidor (ejemplo: /www/server.js o /www/index.js).
  5. Haz clic en Submit.
Regla Crucial del Puerto: En la nube, tu servidor Node.js NO debe tener un puerto fijo como 3000. Alwaysdata le asigna un puerto dinámico a través de la variable de entorno process.env.PORT.

Configuración de una Aplicación Python (Flask / Django)

Para proyectos en Python:

  • Selecciona Type: Python WSGI.
  • Elige la versión de Python instalada (3.11 / 3.12).
  • Indica la ruta del archivo WSGI (ej: /www/app.py) y el nombre de la variable de la aplicación (usualmente application o app).
  • Por SSH, puedes crear un entorno virtual con python -m venv venv e instalar tus librerías con pip install -r requirements.txt.

⚡ API REST en Express Lista para Alwaysdata (server.js)

Servidor Express que respeta el puerto dinámico asignado por el balanceador de Alwaysdata:

server.js
Solo lectura
import express from 'express';

const app = express();

// IMPORTANTE: Escuchar en process.env.PORT para Alwaysdata
const PORT = process.env.PORT || 8000;

app.use(express.json());

// Endpoint de prueba
app.get('/api/saludo', (req, res) => {
    res.json({
        mensaje: "¡Hola desde la API de Express en Alwaysdata Cloud!",
        estado: "OK",
        plataforma: "Node.js en Alwaysdata",
        timestamp: new Date().toISOString()
    });
});

// Endpoint de datos de clase
app.get('/api/estudiantes', (req, res) => {
    res.json([
        { id: 1, nombre: "Carlos Mendoza", curso: "Backend Pro" },
        { id: 2, nombre: "Valeria Torres", curso: "Arquitectura Cloud" }
    ]);
});

app.listen(PORT, () => {
    console.log(`🚀 Servidor Node.js escuchando en el puerto ${PORT}`);
});
🧠
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lección
1 Pregunta
Pregunta 1
¿Por qué en Alwaysdata (y en la nube en general) se debe usar "process.env.PORT" en lugar de fijar el puerto 3000 en Node.js?
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar Manual de Alwaysdata: Cloud Hosting & Despliegue Backend y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.