Экспресс возвращает нечетную ошибку с простым маршрутом, но не возвращает ошибку в сложном маршруте - PullRequest
0 голосов
/ 04 июля 2019

Я получаю сообщение об ошибке сервера

Ошибка приведения к ObjectId для значения "groupsbycourse" по пути "_id" для модели "group"

и ответа JSON

{
    "msg": "Group not found"
}

буквально на маршруте, который просто отправляет res.send.Хотя более сложный маршрут действительно работает.Доказательство того, что это не вызвано промежуточным ПО.Что может быть причиной этого?Этот маршрут минимизирован.Есть ли какое-то правило с URL-путем, о котором я не знаю?

В простом маршруте было гораздо больше кода, но я комментировал его до тех пор, пока в нем просто не появился тест "res.send"и я все еще получил ошибку.Это означает, что проблема связана с сигнатурой маршрута.Хотя подпись предельно проста и является точной копией подписи рабочего маршрута.Кроме рабочего маршрута есть переменная параметра.Я также попытался убрать асинхронность, и она все еще не работала.

router.get('/groupsbycourse', auth, async (req, res) => {
 /* the entire route commented out */
 res.send('please');
});

router.get('/:id', auth, async (req, res) => {
    try {
        const group = await Group.findById(req.params.id);

        if (!group) {
            return res.status(404).json({ msg: 'Group not found'});
        }

        res.json(group);

    } catch (err) { 
        console.error(err.message);
        if (err.kind === 'ObjectId') {
            return res.status(404).json({ msg: 'Group not found'});
        }
        res.status(500).send('Server error');
    }
});

Я ожидаю, что просто «пожалуйста» вернется по маршруту.На почтальоне я отправляю запрос GET на http://localhost:5000/api/groups/groupsbycourse, потому что маршрут импортирован в '/ api / groups' с заголовком и действителен для удовлетворения промежуточного программного обеспечения аутентификации.

1 Ответ

0 голосов
/ 04 июля 2019

Я идиот.

В коде у меня был простой маршрут после переменной route, поэтому он входил в этот переменный маршрут.Благослови отладку печати. ​​

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