Sigo recibiendo un 404 cuando publico en una ruta. Estoy usando MongoDB, express y React Native. He creado el esquema, las acciones y el enrutador.
El esquema está a continuación:
const mongoose = require("mongoose"); const Schema = mongoose.Schema; // Create Edible Schema const EdiblesSchema = new Schema({ name: { type: String, required: true }, price: { type: String, required: true }, strength: { type: String, required: true }, purchasedLocation: { type: String, required: true }, effects: { type: String, required: true }, strain: { type: String, required: true }, }); module.exports = Edibles = mongoose.model("edibles", EdiblesSchema);Luego, el enrutador posterior está a continuación:
const express = require("express"); const router = express.Router(); const keys = require("../../config/keys"); // Load edibles model const Edibles = require("../../models/edibles"); // @route POST api/users/edibles // @desc Add an edible to the users collection // @access Public router.post ('/edibles', (req, res) => { if (res.status === 200) { const newEdible = new Edibles({ name: req.body.name, price: req.body.price, strength: req.body.strength, strain: req.body.strain, purchasedLocation: req.body.purchasedLocation, effects: req.body.effects, }) } else { return res.status(400).json({ email: "Thats not going to get you high" }); } newEdible .save() .then( edibles => res.json(edibles)) .catch(err => console.log(err)) }); module.exports = router;Luego, al final, tenemos el handleSubmit para enviar la información de los usuarios al punto final de la API.
const handleSubmit = (response) => { console.log("EDIBLES", name, strength, price, effects, strain) dispatch(setEdible(payload)) if (response === 200) { axios .post(edibleApi, payload) console.log("PAYLOAD", edibleApi, payload, setEdible) // navigation.navigate("Dashboard") } else { console.log("WRONG", edibleApi, payload, setEdible); console.log("userEdibles", userEdibles) } }Realmente estoy perdido con esto... ¡Por favor, ayuda! Probablemente algo realmente estúpido para arreglarlo.
El problema era que estaba usando el punto final incorrecto. Resolví esto usando express-list-routes al agregarlo a mi archivo server.js. const expressListRoutes = require('express-list-routes');
const enrutador = express.Router();
console.log("Ahora cocinamos con gas", expressListRoutes(app, { prefix: '/api/v1' })))
Ese console.log debe agregarse al console.log que indica si su servidor se está ejecutando o no....