Escribo un controlador de solicitud simple para devolver un par de archivos css. Usar fs.readFileSync esto fue fácil. Sin embargo, tengo dificultades para realizar la misma tarea utilizando la versión asincrónica de readFile. A continuación está mi código. Tener mis llamadas al método response.write() divididas entre dos devoluciones de llamada diferentes parece ser problemático. ¿Puede alguien señalar lo que he hecho mal? Curiosamente, este código funciona si pongo response.end() dentro de la primera declaración else. Sin embargo, eso crea un problema porque el segundo archivo CSS no se devuelve (porque response.end() ya se ha activado).Lectura y devolución de archivos múltiples en Node.js usando fs.readFile
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();
}
¿Está intentando agregar los dos archivos CSS en una respuesta? – loganfsmyth
Sí, eso es correcto. – hughesdan
¿Hay alguna razón por la que debe leer los archivos cada vez que alguien realiza una solicitud? ¿Esperas que cambien a menudo?De lo contrario, solo léalas en la memoria cuando se inicie el servidor y vuelva cuando sea necesario. Funciona más rápido. – Evgeny