Nó js globals dentro dos módulos

No nó eu vejo variáveis ​​inicializadas dentro de módulos globais estão se misturando [mudanças feitas por uma requisição afeta a outra] através de requisições. Por ex:

a.js

var a;
function printName(req, res) {
  //get param `name` from url;
  a = name;
  res.end('Hi '+a);
}
module.exports.printName = printName;

index.js

//Assume all createServer stuffs are done and following function as a CB to createServer
function requestListener(req, res) {
  var a = require('a');
  a.printName(req, res);
}

De acordo com a minha suposição, a função printName exportada do módulo 'a' é executada toda vez que uma nova solicitação atinge o nó e terá objeto de escopo diferente toda vez.

Assim, ter algo global dentro de um módulo não os afetaria em todas as solicitações.

Mas vejo que não é o caso. Alguém pode explicar como o nó manipula as exportações de módulo de funções de maneira específica e como superar essas variáveis ​​globais compartilhadas entre as solicitações dentro de um módulo?

Editar [Fazemos tarefa assíncrona por solicitação]: Com solicitações rápidas em nosso sistema ativo. Que basicamente consulta redis e responde a solicitação. Nós vemos a resposta errada mapeada para a requisição errada (a resposta [armazenada em um var global no módulo] de uma pesquisa de redis erroneamente mapeada para o diff req). E também temos alguns valores padrão como global vars, que podem ser substituídos com base em params de solicitação. Que também está ficando ferrado

questionAnswers(3)

yourAnswerToTheQuestion