Entonces, mi servidor express es un intermediario entre una aplicación de front-end y una API que no acepta solicitudes directamente desde el navegador.
Si llamo a la API del cartero, obtengo una respuesta exitosa. Para el contexto, aquí está el código de Postman (en vista HTML):
POST hosted3.xyz.com/lookup\ HTTP/1.1 Content-Type: application/json Accept: application/json, text/json, text/x-json, text/javascript, application/xml, text/xml Accept-Encoding: gzip, deflate Host: https://hosted3.xyz.com Cache-Control: no-cache Postman-Token: 72cdc54c-777f-e385-f6b8-5a3c5a8c0371 {body...}Esto funciona bien.
Ahora mi servidor Express está en localhost: 4041 y está configurado para realizar la misma llamada que se muestra arriba, pero esto falla con un 500 Error: read ECONNRESET .
Así es como se ve ese código:
const express = require("express"); const bodyParser = require('body-parser'); const axios = require ('axios'); const xmlParser = require('fast-xml-parser'); const he = require('he'); const cors = require('cors') const app = express(); const port = process.env.PORT || 4041; app.use(cors()) app.options('*', cors()); app.post ('/querywrapper', (req, res, next) => { const headers = { 'Content-Type': 'application/json', 'Accept': 'application/json, text/json, text/x-json, text/javascript, application/xml, text/xml', 'Accept-Encoding': 'gzip, deflate', 'Host': 'https://hosted3.xyz.com' }; console.log (req.body); try { axios.post('https://hosted3.xyz.com/lookup/', req.body, { headers }) .then(response => { console.log ("recieved") console.log(JSON.stringify(response)); res.json(response); }) .catch(err => next(err)); } catch{ } });Estoy probando esto ejecutándolo y haciendo la llamada (mismo cuerpo) desde Postman. Así que sé que no tiene nada que ver con mi parte delantera.
¿Qué estoy haciendo mal? Y con errores como estos, ¿cuál es la mejor manera de depurar?
¡Gracias!