Я разрабатываю веб-приложение с MERN для загрузки информации об учениках в школе, поэтому я делаю свой бэкэнд с MongoDB и JS, а для выполнения запроса я использовал библиотеку Axios. Для получения информации о каком-либо студенте с помощью метода GET это работает так хорошо, но когда я попытался обновить некоторую информацию о студенте с помощью метода PUT, он не обновляется. В console.info появляется новая информация, но не на бэкэнде, это мой код, где я пытаюсь обновить эту информацию.
import { useDispatch, useSelector } from "react-redux";
import { onLoadEvents3, onSetActiveEvent3, onUpdateEvent3 } from "../store";
import { systemApi } from "../api";
import Swal from "sweetalert2";
export const usePerDatStore = () => {
const eventId = "64a5fc8e8f32a8a62adddf3b";
const dispatch = useDispatch();
const { event, activeEvent } = useSelector((state) => state.perdat);
const setActiveEvent3 = (perdatEvent) => {
console.info(perdatEvent);
dispatch(onSetActiveEvent3(perdatEvent));
};
const startSavingEvent3 = async (perdatEvent) => {
try {
dispatch(onUpdateEvent3({...perdatEvent}));
console.info("Data antes de entrar al backend", perdatEvent);
const {data} = await systemApi.put(`/events/${eventId}`,perdatEvent);
console.info("datos obtenidos del backend despues del put",data.evento.datos_personales);
// Lógica adicional para guardar los datos editados en el backend
} catch (error) {
console.info(error);
Swal.fire('Error al guardar', error.response.data.msg, 'error');
}
};
const startLoadingEvents3 = async () => {
try {
const { data } = await systemApi.get(`/events/${eventId}`);
const events = data.evento
dispatch(onLoadEvents3(events));
} catch (error) {
console.info("Error al cargar el usuario");
console.info(error);
}
};
return {
activeEvent,
event,
setActiveEvent3,
startSavingEvent3,
startLoadingEvents3,
};
};
и мой systemApi.js для вызова axios и использования метода, который я хочу импортировать аксиомы из «аксиос»;
import {getEnvVariables} from '../helpers'
const {VITE_API_URL} = getEnvVariables()
const systemApi = axios.create({
baseURL: VITE_API_URL
})
//todo interceptores
systemApi.interceptors.request.use(config =>{
config.headers = {
...config.headers,
'x-token': localStorage.getItem('token')
}
return config;
})
export default systemApi
В моем console.info появляется следующий вывод (при нажатии на него сохраняется новая информация)
вывод perdatEvente:
Data antes de entrar al backend
{fname: 'Christian', snumber: '18400282', career: 'Mehcatronic', group: '11A', vinculacion: 'CETSA', …}
age: "26"
birth: "2001-09-09T01:30:00.000Z"
career: "Mehcatronic"
col: "El batan"
fname: "Christian"
gender: "Male"
group: "11A"
hnumber : "#2200"
mail:"[email protected]"
number: "31113644888"
phone: "3111364"
snumber : "18400222282"
street: "Guadalupe Mero"
vinculacion: "CETSA"
Это console.info из бэкэнда данных, который возвращает
data.event.datos_personales
datos obtenidos del backend despues del put
{fname: 'Christian', snumber: '18400282', career: 'Mehcatronic', group: '11A', vinculacion: 'CETSA', …}
age: "26"
birth: "2001-09-09T01:30:00.000Z"
career: "Mehcatronic"
col: "El batan"
fname: "Christian"
gender: "Male"
group: "11A"
hnumber: "#2200"
mail: "[email protected]"
number: "31113644888"
phone: "31113644800000000000000"
snumber: "18400222282"
street: "Guadalupe Mero"
vinculacion: "CETSA"
В заголовках появляется все хорошо и изменение сделано но нет. Если вам нужна дополнительная информация или другой код, такой как slice или PerDat.jsx, дайте мне знать.
Я надеюсь, что вы можете мне помочь. С уважением. у8.
🤔 А знаете ли вы, что...
JavaScript используется для разработки современных одностраничных приложений (SPA), где весь контент загружается асинхронно.