IDONTSUDO
@IDONTSUDO
ЧСВ программистов идет в комплекте с первой IDE.

Node.js как сделать выход из приложения?

У меня есть endpoint. И два коллбека ниже.
router.put('/fixtures/change/main/:fixtoId', jwtTokenUserRole,ChangeMainFixture)


exports.jwtTokenUserRole = async (req, res,next) =>{
    
    let head = req.headers

    var token = head.authorization.replace('Bearer ','')
   
    let j = jwt.decode(token)

    req.auth = j.role
    
    next()
}

exports.ChangeMainFixture = (req,res) =>{
    let fixMain = req.fixtur
   
    fixMain = _.extend(fixMain, req.body)
    fixMain.save((err, result) => {
        
        if (err) {
            return res.status(400).json({
                error: err
            })
        }
        
        res.json(result)
    })
}

Я хочу что бы первый калбек, определял права пользователя. И если запрос сделал не админ. То дальше по калбекам не шло. Я нашел в документации функцию process.exit(1); Но разработчики Nodejs не рекомендуют это использовать. Отслеживать, права в последнем калбеке и от туда отдавать респонс, не вариант. Я могу уставить это тысячей if(), но хотелось бы найти решение по лучше.
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
Есть такое понятие, как middleware, посредник, который отсечет для необходимых роутов по нужному условию (что админ). Пишите один раз и к роутам добавляете его, тогда как локовица -- к роуту дело дойдет, если пропустят другие слои.

https://expressjs.com/ru/guide/using-middleware.html
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы