La lecture et le renvoi de plusieurs fichiers en Node.js à l'aide de fs.readFile

Je suis en train d'écrire un simple gestionnaire des demandes de retour d'une paire de fichiers css. À l'aide de fs.readFileSync c'était facile. Cependant, je vais avoir des difficultés à accomplir la même tâche à l'aide de la version asynchrone de readFile. Ci-dessous mon code. Avoir ma réponse.méthode write() appels répartis entre deux différents rappels semble être problématique. Quelqu'un peut-il point de ce que j'ai fait de mal? Il est intéressant de noter que ce code fonctionne si je mets la réponse.fin() à l'intérieur de la première instruction else. Cependant, cela crée un problème en ce que le deuxième fichier css ne obtenez pas de retour (car la réponse.fin() a déjà été tiré).

function css(response) {

  response.writeHead(200, {"Content-Type": "text/css"});

  fs.readFile('css/bootstrap.css', function(error, content){
    if(error){
      console.log(error);
    }
    else{
      response.write(content);
    }
  });
  fs.readFile('css/bootstrap-responsive.css', function(error, content){
    if(error){
      console.log(error);
    }
    else{
      response.write(content)
    }
  });
  response.end();
}
Si vous vous essayer d'ajouter les deux fichiers CSS dans une réponse?
Oui, c'est vrai.
Est-il une raison pour laquelle vous devez lire les fichiers chaque fois que quelqu'un fait une demande? Attendez-vous à changer souvent? Si non, il suffit de lire dans la mémoire lorsque le serveur est démarré et retour en cas de besoin. Fonctionne plus rapidement.
Ou, prendre un coup d'oeil à fs.montre nodejs.org/docs/latest/api/...

OriginalL'auteur hughesdan | 2012-02-25