Экспресс не перенаправляет на React - PullRequest
1 голос
/ 24 мая 2019

Я использую React и отправляю req.params.id в мой экспресс-сервер через запрос GET. Если он успешен, он отправляет JSON. Если нет, он должен перенаправить на определенный URL. Но это не отправка запроса на перенаправление, чтобы отреагировать? Когда я тестирую его в Postman, он работает правильно, когда я заменяю его на res.status (401) .json ({не авторизовано: у вас нет прав для просмотра этого});

Есть предложения?

router.get('/score/:id', passport.authenticate('jwt', { 
    session: false
}), (req, res) => {
    User.findOne({
        user: req.user.id
    })
    .then(user => {
        Scores.findById(req.params.id)
            .then(score => {
                // Check for score owner to prevent anyone from accessing score
                if (score.user.toString() !== req.user.id && req.user.role !== 'admin') {

                    return res.redirect('/not-authorized');

                } else {
                    res.json(score);
                }


            })
            .catch(err => res.status(404).json({
                scorenotfound: 'Score not found'
            }));
    })
});

1 Ответ

5 голосов
/ 24 мая 2019

Функция перенаправления перенаправляет вас на новый маршрут в вашем приложении js node. Вы должны вернуть в ваше приложение реакции часть информации, например:

if (score.user.toString() !== req.user.id && req.user.role !== 'admin') {
        return res.status(403).send({ error: "not-authorized" });
} else {
        res.json(score);
}

тогда вы можете обработать его в своем приложении реакции и заставить приложение перенаправить вас на правильный маршрут.

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