세션 인증을위한 미들웨어를 구현 중입니다. 이 함수에는 db.sessions.findOne()의 콜백 내에서 db.sessions.remove() 중첩 비동기 db 호출이 포함됩니다.Node.js/Mongojs 중첩 db 콜백 return
콜백에서 verifyUserSession()으로 next() 또는 next (err)를 반환 할 것인지 확실하지 않거나 verifyUserSessions에서 반환하는 것인지 확실하지 않기 때문에 'return'문이 혼란 스럽습니까? 이 일을 제대로하고 있습니까?
function verifyUserSession(req, res, next) {
if (req.headers.sessionKey)
{
db.sessions.findOne(req.headers.sessionKey, function(err, session) {
if (err)
{
return next(err);
}
if (!session)
{
return next(new Error({'message': 'Session does not exist'}));
}
if ((new Date().getTime() - session.timestamp.getTime())/86400000 > 60)
{
db.sessions.remove({sessionKey: req.headers.sessionKey}, function(err){
if (err)
{
return next(err);
}
return next(new Error({'message': 'Session expired'}));
});
}
else
{
// session ok
}
});
}
}