在可组合中间件中处理Express-JWT错误

我正在为每个API实现JWT授权,如下所示:

auth.js

import expressJwt from 'express-jwt'; import compose from 'composable-middleware'; var validateJwt = expressJwt({ secret: config.secrets.session }); function isAuthenticated() { return compose() .use(function(req, res, next) { validateJwt(req, res, next); }) .use(function(req, res, next) { User.find({ where: { id: req.user.id } }).then(function(user){ //Handle User }).catch(function(err){ //Handle DB Error }); }); } 

index.js

 import auth from '../../auth'; import express from 'express'; import controller from './user_group.controller'; import * as validators from './user_group.validations'; // Create router object const router = express.Router(); // Get all user groups router.get('/', [auth.isAuthenticated(), validators.index], controller.index); 

除了JWT的error handling,一切工作都很好。 我不理解函数validateJwt(req, res, next); 在移动到下一个中​​间件之前如何处理Unauthorized Error stack

我已经完成了使用以下内容:

 .use(function(err, req, res, next) { if(err) { return res.status(constants.INVALID_OR_NO_ACCESS_TOKEN.code).json({ status: 'error', code: constants.INVALID_OR_NO_ACCESS_TOKEN.code, message: constants.INVALID_OR_NO_ACCESS_TOKEN.message }).end(); } User.find({ where: { id: req.user.id } })