es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La solicitud POST al servidor me está dando un error en Express net:: ERR_CONNECTION_REFUSED.

Quiero recopilar los datos de un formulario HTML simple y enviarlos al servidor. Desafortunadamente, estoy cometiendo errores y el servidor no está recibiendo los datos.
El error en la consola

POST http://localhost:3000/ net::ERRCONNECTIONREFUSED

Aquí está mi código.

server.js

var express = require(“express”);
var app = express();
let PORT = process.env.PORT || 3000;

// Middleware
app.use(express.static(“public”));
app.use(express.json());

app.get(“/”, function(req, res) {
res.sendFile(__dirname + “./public/index.html”);
});

app.post(“/”, function(req, res) {
console.log(‘kkk’, req.body);
});

var server = app.listen(PORT, function() {
console.log(“Express server listening on port ” + PORT);
});

Estoy usando XMLHttpRequest() para recolectar los datos y aquí está el código.

const contactForm = document.querySelector(‘#contactForm’);
let fullName = document.getElementById(‘fullName’);
let email = document.getElementById(’emailAddress’);
let phone = document.getElementById(‘phoneNumber’);
let message = document.getElementById(‘message’);

contactForm.addEventListener(‘submit’, (e) => {
e.preventDefault();
let formData = {
name: fullName.value,
email: email.value,
phone: phone.value,
message: message.value
}

let xhttp = new XMLHttpRequest();

xhttp.open('POST', '/');
xhttp.setRequestHeader('content-type', 'application/json');
xhttp.onload = function() {
    console.log(xhttp.responseText);
    if(xhttp.responseText == 'success') {
        console.log('Email sent successfully');
        fullName.value = '';
        emai.value = '';
        phone.value = '';
        message.value = '';
    }else {
        console.log('Something went wrong');
    }
}
xhttp.send(JSON.stringify(formData));

});

Si deseas revisarlo en vivo.

https://contact2021.herokuapp.com/

En el servidor, puedo ver la respuesta

https://i.stack.imgur.com/49YA3.png

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Después de revisar el código proporcionado, noté que el mensaje de error en la consola es net::ERR_CONNECTION_REFUSED, lo cual indica que el servidor no se está ejecutando o no está escuchando en el puerto especificado.

    En el archivo server.js, veo que el servidor debería escuchar en el puerto 3000 de forma predeterminada o en cualquier puerto que se especifique en la variable de entorno process.env.PORT.

    Para solucionar este problema, intenta ejecutar el servidor nuevamente y asegúrate de que se esté ejecutando en el mismo puerto especificado en el código del lado del cliente. También puedes intentar cambiar el puerto en el código del lado del cliente para que coincida con el especificado en el código del servidor.

    Otra posibilidad es que pueda haber alguna interferencia de un firewall o software antivirus en la máquina local que esté bloqueando la conexión. En este caso, intenta desactivar estos programas temporalmente mientras pruebas la conexión.

    Por último, dado que el mensaje de error indica un problema de red, verifica que la máquina local tenga una conexión de red activa y que otros dispositivos puedan conectarse al servidor utilizando la misma URL.

Comments are closed.