Tengo un objeto JS en el siguiente formato que quiero enviar al backend. Implementé un código pero en el controlador de nodeJs dice que el hotel is undefined . Mi código escrito es el siguiente:
let hotel = new FormData(); hotel.append('name', data.append); hotel.append('slug', data.slug); hotel.append('logo', data.logo); hotel.append('coverAvatar', data.coverAvatar); hotel.append('designs', [{ name: `${+new Date()}`, url: localStorage.getItem('initialDesign') }]) hotel.append('products', [...selectedVariants]); axios.post(`${baseURL}/hotel`, { hotel },{ headers: { 'Authorization': localStorage.getItem('_AUTH_TOKEN'), 'Content-Type': 'multipart/form-data' }}) .then(response => { console.log({ response }); }) .catch(err => { console.log('err', err); }) Estoy usando multipart/form-data porque logo y coverAvatar son la salida de <input type='file' />
Mis datos Formato
{ "name": "preshan hotel 2", "logo": {file}, "coverAvatar": {file}, "romms": [{ "name": "tempDesign", "url": "https://picsum.photos/600/800" }], "facilities": [ { "facilityId": "61ceb3931b1b68fe90827f23", "facilityMappings": ["61ceb39b1b1b68fe90827f2c", "61ceb39b1b1b68fe90827f41"] }, { "facilityId": "61ceb3ca1b1b68fe90827f47", "facilityMappings": ["61ceb3ca1b1b68fe90827f50","61ceb3ca1b1b68fe90827f58", "61ceb3ca1b1b68fe90827f56"] }, { "facilityId": "61ceb3e41b1b68fe90827f5d", "facilityMappings": ["61ceb3e41b1b68fe90827f5f"]} ] }Debe pasar sus datos de formulario directamente en lugar de pasar un objeto.
En tu ejemplo se vería así:
... axios.post(`${baseURL}/hotel`, hotel,{ ...