Ok, obtuve una base de datos mongodb y estoy usando mongoose.
Tengo el siguiente modelo para mi producto.
const productSchema = new Schema({ name: { type: String, required: true}, description: { type: String, required: true }, price: { type: Number, required: true }, image: { type: String, required: true }, usage: { type: String, required: true }, species: [{ specie: { type: String, required: true } }], ingredients: [{ name: { type: String, required: true }, quantity: { type: String, required: true }, }], });Lo que estoy tratando de hacer es enviar una imagen y JSON en una solicitud http SINGULAR. Descubrí que esto no es realmente posible. Entonces, ¿qué es lo mejor para lograr esto? ¿Enviar dos solicitudes HTTP diferentes, una con los datos json/texto y otra con el archivo? Esto significaría que necesito editar mi modelo y hacer que los campos no sean obligatorios, y sería un poco difícil de depurar en caso de que algo salga mal con una de las solicitudes.
const newProduct = { name: name, description: description, price: price, usage: usage, ingredients: itemList, species: speciesList, image: image, }; const [itemList, setItemList] = useState([ { name: "", quantity: "" }, ]); const [speciesList, setSpeciesList] = useState([ { specie: "" }, ]);Esto es lo que estoy tratando de enviar
Es simple. puede enviar los datos al servidor express con una estructura multipart/form-data y luego en el servidor debe analizar los datos recibidos y asignar los valores como modelo definido y finalmente almacenarlos en mongo db.