Не удается создать axios.put из react на node.js сервер

#node.js #reactjs #express #axios

#node.js #reactjs #выразить #axios

Вопрос:

У меня есть компонент react, в котором я пытаюсь изменить статус объекта. Однако я терплю неудачу и не понял, на правильном ли я пути.

Это сервер NodeJS с express и mongoose.

Внешняя сторона:

 handleSubmit2(event){
  const body= {status: this.state.newstatus}
  event.preventDefault()
  axios.put('http://127.0.0.1:3010/api/users/:user_id',{body})

  alert("Status Changed")
}
  

при рендеринге:

         {hits.map(item => <li key={item._id}> {item.firstname} {item.lastname} <br />  <strong> {item.status}</strong> 
          <form autoComplete="off" className="new_status" onSubmit={this.handleSubmit2}>
        <FormControl>{this.loadoptions()}</FormControl>
        <input type="submit" value="Submit" className="input"/>
        <br />
          </form>

  

Мой серверный:

     router.put( '/:user_id', ( req, res ) => {
        console.log(req.body.body.status)
        User.findByIdAndUpdate(req.params.user_id, req.body.body.status)
        .then(data => {
           if(follower)
           res.send(data);
           else
           res.status(404).send("Follower not found");
       })
       .catch (e => res.status(400).send("Follower not exist"));
   });
  

Схема пользователя:

 
const userSchema = new mongoose.Schema ({
    firstname: String,
    lastname: String,
    status: String
});

const User = mongoose.model('User', userSchema);

  

Ссылка на git:

https://github.com/fmpro12/users_add

Когда я отправляю форму, я хочу изменить статус определенных пользователей из массива.

Что я делаю не так?

Комментарии:

1. Какая-либо ошибка или подробная информация о том, что не происходит и что вы хотите, чтобы произошло? также откуда follower if(follower)

2. Вы также не передаете идентификатор в свой PUT запрос, поэтому ваша база данных не может найти этого конкретного пользователя.

3. итак, как должен выглядеть правильный запрос? « const {hits} = this.state const id = hits.map(id => id._id) axios.put(‘ 127.0.0.1:3010/api/users /:user_id ‘ id,{body})«

4. И как я могу передать ИДЕНТИФИКАТОР конкретного выбранного пользователя?