NodeJS + Mon goose Метод PATCH с findByIdAndUpdate не возвращает ничего, даже нового: true в параметре установлен - PullRequest
0 голосов
/ 23 марта 2020

Я использую Пн goose 5.8.6 и не могу получить измененную модель (в ответе ничего) в ответе на запрос. Сохранение в порядке, но только ответ пуст. Я добавил опцию {new: true} и все тот же. Кто-нибудь знает, в чем проблема?

this.router.patch(this.path + '/:id', this.modifyConfiguration)

private modifyConfiguration = async (req: Request, res: Response) => {
    if (!req.body || (!req.body.name && !req.body.config) || !req.params.id) {
        return res.status(400).json({ message: 'Incorrect request content' });
    }

    await Configuration.findByIdAndUpdate(req.params.id, req.body, { new: true }, async (err, item) => {
        if (err) {
            return res.status(400).json({ message: err.message });
        } else {
            return res.status(204).json(item);
        }
    });
}

1 Ответ

0 голосов
/ 23 марта 2020

Ваш код должен быть таким

this.router.patch(this.path + '/:id', this.modifyConfiguration)
private modifyConfiguration = async (req: Request, res: Response) => {
    try {
        if (!req.body || (!req.body.name && !req.body.config) || !req.params.id) {
            return res.status(400).json({ message: 'Incorrect request content' });
        }

        const item = await Configuration.findByIdAndUpdate(req.params.id, req.body, { new: true });

        return res.status(204).json(item);
    } catch (error) {
        return res.status(400).json({ message: error.message });

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...