#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. И как я могу передать ИДЕНТИФИКАТОР конкретного выбранного пользователя?