Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
La solicitud HTTP tiene un cuerpo vacío

Estoy creando un programa cliente-servidor simple usando Node y Express. El programa debe poder aceptar una entrada JSON en el lado del cliente, realizar alguna lógica y luego pasar información al lado del servidor.

Actualmente puedo proporcionar información al cliente con éxito, sin embargo, el lado del servidor simplemente devuelve {} al enviar request.body a la consola después de realizar un POST desde el lado del cliente.

cliente.js:

 const clientPort = 9300; const serverPort = 9400; var express = require('express'); var http = require('http'); var app = express(); app.use(express.json()); // json callback app.post('/api', function(request, response) { console.log(`api callback`); // log the received json var input = request.body; console.log(`Received JSON: ${JSON.stringify(input)}`); var options = { host: 'localhost', port: serverPort, path: '/', method: 'POST', header: { 'Content-Type': 'application/json' } }; const httpReq = http.request(options, function(response) { response.setEncoding('utf8'); response.on('data', (chunk) => { console.log(`BODY: ${chunk}`); }); response.on('end', () => { console.log('No more data in response.'); }); }); // write word to request httpReq.write(JSON.stringify(input)); httpReq.end(); }); // listen on port 9300 for inputs app.listen(clientPort, 'localhost', () => { console.log(`Client listening on port ${clientPort}...`); });

servidor.js:

 const serverPort = 9400; var express = require('express'); var app = express(); app.use(express.json()); // expect to receive the JSON input app.post('/', function(request, response) { console.log(`server callback`); console.log(JSON.stringify(request.body)); }); // listen on port 9400 for inputs from client app.listen(serverPort, 'localhost', () => { console.log(`Server listening on port ${serverPort}...`); });

Ejemplo de entrada:

 curl --header "Content-Type: application/json" \  INT ✘  11s  --request POST \ --data '{"word":"test"}' \ http://localhost:9300/api

Salida de client.js (basada en la entrada anterior):

 Client listening on port 9300... api callback Received JSON: {"word":"test"}

Finalmente, la salida server.js:

 Server listening on port 9400... server callback {}
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Debe usar el middleware express urlencoded para que pueda interpretar el objeto del cuerpo en su solicitud.

Debajo app.use(express.json()); pon la siguiente linea

 app.use(express.urlencoded({ extended: true }));

Más información aquí: https://www.geeksforgeeks.org/express-js-express-urlencoded-function/

about 4 years ago · Juan Pablo Isaza Relatório

0

Todo lo que tenía que hacer era reemplazar el header en var options con headers .

Voy a ir a darme una bofetada en la cara.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda