en una aplicación express.Js; quiero escribir una clase de controlador que maneje la solicitud y la respuesta para otros controladores, por ejemplo, agregar datos a los locales en el objeto res o eliminar datos de req.session etc.
¿Hay alguna manera de hacerlo sin pasar req o res como argumento? ¿Puedo acceder a ellos globalmente?
La forma correcta y posible es pasar el objeto req como argumento a las funciones que necesitan usarlo.
Colocarlo en variables globales no funcionará porque se pueden procesar varias solicitudes al mismo tiempo si, por ejemplo, las solicitudes usan algunas llamadas asincrónicas como parte de su procesamiento. Por lo tanto, múltiples solicitudes pisotearán otras solicitudes y harán que sea muy difícil rastrear errores.
node.js es un servidor que potencialmente puede manejar muchas solicitudes para muchos clientes. El servidor puede tener muchas solicitudes en curso al mismo tiempo y, por lo tanto, los datos globales simples que desea usar no se pueden usar para datos específicos de la solicitud.