Маршрут не выполняется после промежуточного программного обеспечения - PullRequest
0 голосов
/ 17 марта 2020

Итак, я создаю маршрут аутентификации, но не могу выполнить промежуточное ПО.

verifyToken. js

module.exports = function (req, res, next) {
const token = req.get('auth-token')
if (!token) return res.status(401).send('Access Denied!')
try {
    const verified = jwt.verify(token, process.env.TOKEN_SECRET)
    req.user = verified
    console.log(req.user) // successfully logging
    next()
} catch (err) {
    res.setHeader('Content-Type', 'application/json');
    res.status(403).send('Invalid Token')
}
}

user.controller . js

exports.currentUser = verifyToken, async (req, res) => { // after verify token throwing an error 404
   console.log('HIT') // not logging
   // return res.send(req.user)
}

user.route. js

const { currentUser } = require('../controllers/users');
router
   .route('/currentuser')
   .post(currentUser)

1 Ответ

1 голос
/ 17 марта 2020

Я попробовал ваш код и не смог войти в систему. Я предлагаю следующее: разделите export @ exports.currentUser на

var verifyToken = require('./verifyToken.js')

var response = async (req, res) => {
   console.log('HIT') // not logging
   // return res.send(req.user)
}

module.exports.currentUser = {verifyToken, response}

Затем переписайте маршрут. js вот так, чтобы он заработал.

const { currentUser } = require('./controller.js');
router.get('/currentUser', currentUser.verifyToken, currentUser.response)

Для использования Затем () я должен был использовать router.get ('/ get', middleware, callback). Я изменил коды, чтобы я мог проверить это. Вам нужно будет отредактировать коды в соответствии с вашим контекстом!

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