axios и mongo - пытается удалить, используя сопоставленный _id в качестве периметра. Он отвечает 200, но объект остается в БД - PullRequest
0 голосов
/ 28 июня 2018

Попытка создать простое CRUD-приложение, использующее реагирование, axios и mongoose.

Вот мои аксиозы:

deleteUser(id) {
    axios.delete(`${rootUrl}/api/users/${this.state.id}`, {
        params: { id }
    })
    .then(response => {
        // this.setState({ users: response.data });
        console.log('deleteUser response', response, this.state);
    });
}

Вот соответствующий маршрут API:

router.delete('/users/', (req, res) => {
    const { id } = req.body;

    User.findByIdAndDelete(id, (error, data) => {
        if (error) {
            console.log('error in deleting!');
            throw error;
        } else {
            console.log('user has been deleted', data);
            res.status(204).json(data);
        }
    });
});

Возвращает

DELETE /api/users/?id=5b34e5b5dfef8b4sd234567 204 47.816 ms - -

Но когда я получаю пользователей, удаленный пользователь остается.

Вот рендеринг, в который я отображаю состояние. Я думаю, что правильно ввел идентификатор, но я не уверен, что еще попробовать:

{this.state.users.map(user => {
    return (
        <div className="Users1" key={user._id}>
            <Card>
                <CardBody>
                    <CardTitle>{user.username}</CardTitle>
                    <CardText>{user._id}</CardText>

                    <Button onClick={() => this.deleteUser(user._id)}
                            key={user._id}
                            type="button"
                            color="danger"
                    >
                        X
                    </Button>
                </CardBody>
            </Card>
        </div>       
    );
})}

и вот состояние:

state = {
    users: [],
    id: ''
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...