Когда вы используете findOne (), вы должны использовать его обратный вызов (не ваш индивидуальный обратный вызов), который равен
User.findOne({<search_params>}, (err, document)=>{
// this callback is specific to mongoose API and you have to follow the parameters
// err is the error occurred when running findOne()
// document is returned document passed back to you by findOne()
// when your customized callback uses res, it had no knowledge of it in its current scope
})
Причина, по которой вы не можете вернуть res, заключается в том, что res не был передается в ваш настраиваемый обратный вызов в качестве параметра. Таким образом, ваш пользовательский обратный вызов не знает, что res существует! Я предлагаю вместо этого обработать ответ на уровне функции (decodeToken) / вы можете попробовать передать res в свой обратный вызов в качестве последнего параметра, чтобы посмотреть, поможет ли это.
User.findOne({}, (err, document, res){} // Don't think this will work