typescript - No se puede acceder a los endpoints de node.js express en el navegador, pero postman funciona perfectamente
Estoy trabajando en una aplicación de Express localmente. Tengo una ruta en mi aplicación que se ve así
rootRouter.get('/', async (_: Request, res: Response) => {
res.status(OK).send('Hello!');
});
Ejecución de línea de comandos
node -r module-alias/register ./dist --env=developmentComportamiento del navegador:
No puedo ver la ruta a través de mi navegador localhost:6000. Veo "No se puede acceder a este sitio". Es así para todas las URLs. No veo que aparezca nada en los registros de mi servidor.
Comportamiento del cartero:
Cuando accedo a la misma ruta localhost:6000 con una solicitud GET en Postman, veo el texto "¡Hola!". Registros - GET/200 0.354 ms - 25
Heroku ejecutar
heroku local web -p=5000 (llama al mismo node -r module-alias/register ./dist --env=development que arriba, pero usa el puerto 5000 en su lugar)
Comportamiento del navegador:
PUEDO ver la ruta a través de mi navegador localhost:5000. Veo "¡Hola!". Veo la solicitud en mis registros
8:44:45 PM web.1 | GET / 200 0.517 ms - 25
8:44:45 PM web.1 | GET /favicon.ico 200 1.928 ms - 12014
Comportamiento del cartero:
También funciona, veo "¡Hola!", registros - 9:01:29 PM web.1 | GET/200 0.193 ms - 25
Código de servidor aproximado:
const app = express();
app.use(express.json());
app.use(express.urlencoded({extended: true}));
app.use(cookieParser());
app.use(morgan('dev'));
app.use('/', rootRouter); //contains my route that I posted above
// error handling
app.use((err: Error, _: Request, res: Response, __: NextFunction) => {
const message = err.message;
return res.status(500).json({ error: message });
});
const viewsDir = path.join(__dirname, 'views');
app.set('views', viewsDir);
const staticDir = path.join(__dirname, 'public');
app.use(express.static(staticDir));
Respuesta #1
El Problema
Me di cuenta de cuál era el problema. Específicamente, el puerto 6000 está prohibido por muchos navegadores. https://chromium.googlesource.com/chromium/src.git/+/refs/heads/master/net/base/port_util.cc
Fue Firefox el que me ayudó a resolverlo, ya que su mensaje de error es mucho más específico que el de Chrome.
Mensaje de error de Firefox:
"Esta dirección está restringida. Esta dirección utiliza un puerto de red que normalmente se usa para fines distintos a la navegación web. Firefox ha cancelado la solicitud para su protección."