Todos los artículos
Usar PortPreview con Express.js para túneles HTTPS, webhooks y OAuth
dev stacksExpress.jsNode.jslocal developmentlocalhost tunneling

Cómo utilizar PortPreview con una aplicación Express.js

Para usar PortPreview con una aplicación Express.js, escuche en 0.0.0.0 (o app.listen(PORT) sin vincularse solo al host local), ejecute npx portpreview PORT y registre la URL HTTPS para webhooks, devoluciones de llamada de OAuth y demostraciones de API.

Por qué túnel Express

Express sigue siendo la capa HTTP predeterminada para las API y BFF de Node. Los proveedores de pagos, los webhooks de CRM y los servidores OAuth necesitan un punto final HTTPS público mientras depuras el orden del middleware y el análisis del cuerpo sin formato localmente.

Inicio rápido

  1. Inicie Express: node server.js o npm run dev en el puerto 3000.
  2. Ejecute npx portpreview 3000.
  3. Prueba GET https://your-tunnel.portpreview.dev/health.
  4. Configure los webhooks del proveedor en POST https://your-tunnel.portpreview.dev/api/webhooks/....

Servidor Minimal Express

import express from 'express';

const app = express();
const PORT = process.env.PORT ?? 3000;

app.get('/health', (_req, res) => res.json({ ok: true }));

app.listen(PORT, () => {
  console.log(`Listening on http://localhost:${PORT}`);
});

Express escucha en todas las interfaces de forma predeterminada. Si se vincula explícitamente, use '0.0.0.0' para que el proceso del túnel pueda reenviar el tráfico.

Encabezados de proxy de confianza

Detrás de PortPreview, su aplicación ve X-Forwarded-Proto: https. Habilite el proxy de confianza al generar URL absolutas o cookies seguras:

app.set('trust proxy', 1);

CORS para interfaces divididas

Si un servidor de desarrollo React o Vue en otro puerto llama a su API Express a través de túneles separados, configure CORS explícitamente:

import cors from 'cors';
app.use(cors({ origin: process.env.FRONTEND_TUNNEL_URL }));

Lista de control de seguridad

  • Verifique las firmas de los webhooks antes de analizar JSON.
  • Nunca exponga rutas de administrador no autenticadas en un túnel compartido.
  • Detén el túnel cuando hayas terminado. Ver tunnel security.

Express documentation cubre middleware y enrutamiento. Start PortPreview free.

Preguntas frecuentes

¿Cómo expongo un servidor de desarrollo Express.js con PortPreview?
Inicie su aplicación Express.js en localhost (generalmente el puerto 3000), luego ejecute npx portpreview 3000 en otra terminal. Utilice la URL HTTPS para webhooks, redireccionamientos OAuth y uso compartido.
¿Puedo probar las devoluciones de llamadas de OAuth en localhost con Express.js?
Los proveedores externos requieren un URI de redireccionamiento HTTPS público. Registre la URL de su túnel PortPreview como devolución de llamada durante el desarrollo en lugar de http://localhost.
¿Cuál es el error de tunelización Express.js más común?
Montar express.json() antes de las rutas de webhook consume el cuerpo sin formato. Aplique express.raw() solo en rutas de webhooks antes del middleware JSON global.
¿Es seguro compartir la URL de un túnel Express.js?
Trate las URL del túnel como credenciales temporales. Comparta solo con colaboradores de confianza, deshabilítelo cuando haya terminado y nunca exponga rutas de administrador sin autenticación. Consulte las mejores prácticas de seguridad del túnel localhost.