PUT запрос с экспрессом и axios продолжает давать мне 404 (используя форму React-Redux)
У меня есть форма, которую я пытаюсь использовать для обновления компонента React. Кажется, что состояние изменено, потому что оно не создает проблем, когда я нажимаю "Отправить", но данные не сохраняются. Что еще более важно, я получаю сообщение 404 о том, что объект json, который я пытаюсь изменить, не найден.
Я думаю, что это как-то связано с тем, как я пытаюсь использовать мой запрос axios в своих действиях, но я не удивлюсь, если у меня не будет оснований смотреть на это слишком долго.
Вот соответствующие лакомые кусочки
Маршруты
const User = db.model('user')
const router = require('express').Router();
router.put('/:id', (req, res, next) => {
User.findById(req.params.id)
.then(user => user.update(req.body))
.then(updated => res.status(201).json(updated))
.catch(next)
})
действия
const editUser = (userId, userInfo) => ({
type: UPDATE_USER,
userId,
userInfo
})
export const updateUser = function(id, info) {
return dispatch => {
dispatch(editUser(id, info))
axios.put(`/api/users/${id}`, {info})
.catch(err => console.error("Wasn't able to update user.", err))
}
}
Вот ошибки, которые я получаю
POST http://localhost:1337/api/users/1 Wasn't able to update property. 404 (Not Found)
Error: Request failed with status code 404
at createError (createError.js:15)
at settle (settle.js:18)
at XMLHttpRequest.handleLoad (xhr.js:77)
И этот URI полностью существует, поэтому я не понимаю, почему запрос выглядит иначе.
Любая помощь приветствуется!
1 ответ
Догадаться. Нужна дополнительная строка с использованием .then
на самом деле отправить информацию в мой БД.
export const updateUser = function(id, info) {
return dispatch => {
dispatch(editUser(id, info))
axios.put(`/api/forSale/${id}`, info)
.then(res => res.data)
.catch(err => console.error("Wasn't able to update property.", err))
}
}