Tuve un problema al hacer dos archivos js, uno para colocarlo en el directorio 'sitio web' y el otro fuera de él, y cuando agrego una solicitud de publicación, agrega un nuevo elemento a la matriz desde el archivo js del lado del servidor y lo probé mucho. no funcionó así que... ese es mi código del lado del servidor
/* Empty JS object to act as endpoint for all routes */ projectData = {}; /* Express to run server and routes */ const express = require('express'); /* Start up an instance of app */ const app = express(); /* Dependencies */ const bodyParser = require('body-parser') /* Middleware*/ app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); const cors = require('cors'); app.use(cors()); /* Initialize the main project folder*/ app.use(express.static('website')); const port = 3000; /* Spin up the server*/ const server = app.listen(port, listening); function listening(){ // console.log(server); console.log(`running on localhost: ${port}`); }; // GET route app.post('/add', function (req, res) { let data = req.body; console.log(data); }); // POST an animal const data = [] app.post('/animal', addAnimal) function addAnimal (req,res){ data.push(req.body); console.log(data); }
y ese es mi código del lado del cliente
/* Function to POST data */ const postData = async ( url = '', data = {})=>{ console.log(data) const response = await fetch(url, { method: 'POST', // *GET, POST, PUT, DELETE, etc. credentials: 'same-origin', // include, *same-origin, omit headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(data), // body data type must match "Content-Type" header }); try { const newData = await response.json(); console.log(newData); return newData }catch(error) { console.log("error", error); // appropriately handle the error } } // TODO-Call Function postData('/addAnimal', {animal:'Tiger'}); postData('/addAnimal', {animal:'Lion'});
cuando ejecuto el código dentro del editor de código vs, muestra "{ animal: 'lion' } { animal: 'Tiger' }"
Pero nunca la consola registra los datos.
Tu ruta es /add o /animal no /addAnimal
postData('/add', {animal:'Tiger'});
en su ServerSide, esta función debería mostrar un registro
app.post('/add', function (req, res) { let data = req.body; console.log(data); });
No puede consolar. registrar los datos en su intento / captura porque no devuelve ninguna respuesta en su lado del servidor. Pero primero intente registrar datos en el controlador del lado del servidor para confirmar la buena ejecución del lado del servidor y devolver su respuesta.
olvida enviar la respuesta debe la devolución de llamada de la ruta tener un punto final res
function addAnimal (req,res){ data.push(req.body); console.log(data); // add res end point res.json({msg : 'added'}) } //here too app.post('/add', function (req, res) { let data = req.body; console.log(data); res.end('hello world') });