我在寫一個簡單的請求處理程序來返回一對css文件。使用fs.readFileSync這很容易。但是,我很難用異步版本的readFile完成相同的任務。以下是我的代碼。讓我的response.write()方法調用拆分兩個不同的回調似乎是有問題的。有人能指出我做錯了什麼嗎?有趣的是,如果我在第一個else語句中放入response.end(),這段代碼就可以工作。但是,這會產生一個問題,即第二個css文件不會被返回(因爲response.end()已經被觸發)。使用fs.readFile在Node.js中讀取和返回多個文件
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();
}
所以,你是你試圖追加兩個CSS文件在一個響應? – loganfsmyth 2012-02-26 00:15:12
是的,沒錯。 – hughesdan 2012-02-26 00:42:11
每當有人提出請求時,您是否有理由讀取文件?你期望他們經常改變嗎?如果沒有,只需在服務器啓動時將它們讀入內存並在需要時返回。工作更快。 – Evgeny 2013-02-27 00:24:31