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))
      }
    }
Другие вопросы по тегам