Javascript NodeJs当next()方法上的标记正确时会发生什么?
我是使用JSON Web令牌验证Node.js API的新手,我在scotch.io上读过,但我不明白令牌什么时候正确,下一步()方法之后会发生什么 用户必须在此之后通过其他请求(我的意思是在令牌正确之后) 我认为在这个示例中,代码/路由将在检查令牌后调用,它是正确的,好吗?我如何选择调用其他方法,因为/在next()之后调用。实际上next()要求nodejs继续执行下一步,这是node.js异步循环中的任何内容。Javascript实际上是单线程的,所以下一步将调用堆栈中放置的任何方法。如果不调用next(),程序将被卡住。并且不会在传递给Javascript NodeJs当next()方法上的标记正确时会发生什么?,javascript,node.js,Javascript,Node.js,我是使用JSON Web令牌验证Node.js API的新手,我在scotch.io上读过,但我不明白令牌什么时候正确,下一步()方法之后会发生什么 用户必须在此之后通过其他请求(我的意思是在令牌正确之后) 我认为在这个示例中,代码/路由将在检查令牌后调用,它是正确的,好吗?我如何选择调用其他方法,因为/在next()之后调用。实际上next()要求nodejs继续执行下一步,这是node.js异步循环中的任何内容。Javascript实际上是单线程的,所以下一步将调用堆栈中放置的任何方法。如果
的令牌中间件之后调用任何其他方法。请使用
在这个特定的场景中,它将在这个令牌中间件验证后调用下一个路由,您将把它作为匿名函数传递
也看看这个方法
我认为在这个示例代码中,/
路由将在检查令牌后调用,并且它是正确的,好吗?如何选择要调用的其他方法,因为/
是在next()之后调用的。
它不必调用/route。用户执行并使用apiRouter的每个方法都将通过该中间件。它可以是//users/任何东西等等。那么这只是中间件,对于自动调用的每个请求,它是否正确?在那之后通过的方法可能有点不对劲。你也可以通过任何数量的中间产品。
apiRoutes.use(function(req, res, next) {
// check header or url parameters or post parameters for token
var token = req.body.token || req.param('token') || req.headers['x-access-token'];
// decode token
if (token) {
// verifies secret and checks exp
jwt.verify(token, app.get('superSecret'), function(err, decoded) {
if (err) {
return res.json({ success: false, message: 'Failed to authenticate token.' });
} else {
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});
} else {
...
}
});
apiRoutes.get('/', function(req, res) {
...
});
apiRoutes.get('/users', function(req, res) {
...
});
apiRoutes.get('/check', function(req, res) {
...
});
app.use('/api', apiRoutes);
app.listen(port);