Así que tengo una ruta expresa
router.post('/:make&:model&:year', function (req, res) { const newCar = { make: req.params.make, model: req.params.model, year: req.params.year } Car.create(newCar); res.send(newCar);});Entonces esto funciona arriba usando cartero
http://localhost:8000/edificios/Audi&A4&2018
Quiero saber cómo sería la publicación de Axios en el componente funcional de reacción. Esto es lo que tengo, pero no llega a la ruta en expreso.
const [carFetch, setFetch] = useState(''); const postAxios = async () => { const payload = { make: 'Audi', model: 'A4', year: 2018 }; const { data } = await axios.post('http://localhost:1337/cars/', payload); setFetchedData(data); };Pero no funciona.
~SRJ
No estoy seguro de lo que estamos tratando de lograr aquí, pero aquí hay una solución: dado que sus parámetros en Express están diseñados de la manera en que están, necesitamos pasar los argumentos como un objeto de cadena:
const [carFetch, setFetch] = useState(''); const postAxios = async () => { const payload = `Audit&A4&2018`; const url = `http://localhost:1337/cars/${payload}`; const { data } = await axios.post(url); setFetchedData(data); };Esto debería llegar a la URL exprés y debería hacer la llamada posterior.
Si la solicitud no llega al controlador de ruta rápida, debería haber un problema con la coincidencia de URL.
Y si envía la solicitud de la forma en que muestra su ejemplo de código de reacción, debe buscar datos en el objeto req.body en el controlador de ruta.