Tengo un script JS frontend que toma la entrada de texto de un cuadro de texto HTML y lo envía a un servidor expressjs. Sin embargo, el cuerpo de la solicitud POST siempre está indefinido o, dependiendo de cómo ajuste las cosas, regresa como "{ }" si lo veo a través de console.log(). Como soy nuevo en esto, parece que no puedo ver lo que está mal.
Front-end js:
async function submitCity(){ let x = document.getElementById("wg_input").value; console.log("Successfully captured city name:", x); let toWeather = JSON.stringify(x); console.log("Input data successfully converted to JSON string:", toWeather); const options = { method: 'POST', mode: 'cors', headers: {'Content-Type': 'text/plain'}, body: toWeather } fetch('http://localhost:3000', options) .then(res => console.log(res)) .catch(error => console.log(error)) }back-end:
// Dependencies const express = require('express'); const bp = require("body-parser"); const request = require("request"); const jimp = require('jimp'); const cors = require('cors'); const wgServer = express(); const port = 3000; // Dotenv package require("dotenv").config(); // OpenWeatherMap API_KEY const apiKey = `${process.env.API_KEY}`; // Basic server initialization wgServer.use(cors()) wgServer.use(bp.json()) wgServer.use(bp.urlencoded({ extended: true })) wgServer.listen(port, function() { console.log(`Example app listening on port ${port}!`) }); wgServer.post('/', async function (req, res) { res.set('Content-Type', 'text/plain'); console.log(req.body) res.send('Hello World'); //const data = await req.body; // let jsonData = JSON.stringify(req.body); // res.status(201); //res.json(); });Se supone que los datos devueltos son una cadena de aproximadamente 15 caracteres, más o menos algunos (una ciudad y un estado). Os doy las gracias de antemano.