2012-07-07 60 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