2012-07-07 59 views
0

我想用expressjs顯示靜態HTML頁面。最快的方法是什麼?目前我有一個存儲在文件系統中的html文件,我正在使用res.sendfile(home + "/public/file.xml")Node.js expressjs存儲和顯示html頁面的最快方法

sendfile是最快的方法嗎?或者可能在某種數據庫中存儲文件的速度會更快?

感謝

回答

2

將文件存儲在數據庫中?好吧,有人試圖做這樣的邪惡的事情。但是有什麼意義呢?我的意思是數據庫引擎也必須從磁盤讀取文件。此外還必須做很多其他事情,使裝載過程更長。

現在你似乎混淆了一些事情。發送文件與發送任何其他響應一樣。 在某些時候,你必須發送二進制數據,所以你不能避免使用res.send(或其他任何形式的)。當然,如果我們談論的是Node.js,因爲你可能考慮通過nginx來提供文件,這可能是最好的靜態文件服務器。最後一件事:如果你仍然想通過Node.JS提供文件,那麼你可能會考慮將它們緩存在內存中。這當然取決於你想要提供多少文件和多大文件。這與創建包含數據的全局變量一樣容易,並在有請求時發送它。這是Node.JS唯一可以提升的性能。

+0

這不是發送本身,我是問,更多的存儲。是的,有問題的數據庫肯定會存儲在內存中。 – Harry 2012-07-07 15:01:10

+0

但它確實聽起來像sendfile完全適合我的需求,所以我對此非常滿意。 – Harry 2012-07-07 15:01:31

+0

@哈利,我明白了。仍然使用數據庫這是一個矯枉過正的...和低效的矯枉過正。簡單的解決方案*有時是最好的。 :) – freakish 2012-07-07 17:42:56

0

Express有靜態文件服務支持:app.use(express.static(__dirname + '/public'));

+0

是的,我知道,是sendfile一樣快嗎?我相信它在後臺使用相同的connect.static.send,所以它應該是提供靜態頁面的最快方式嗎? – Harry 2012-07-07 14:19:16