Node.js对“经典”风格的网站有用吗?

时间:2013-08-09 18:37:43

标签: node.js

我正在考虑使用nodejs制作非实时应用。例如,博客,论坛或图像板等网站。

我已经读过nodejs在用于异步作业时很好。所以我想知道当用于提供大量静态文件时会有什么结果,比如大图像,css和amp; js文件等

发送文件(假设它是2-3MB)是否正确,整个服务器将被阻止,直到传输完成?我还读到可以使用操作系统的sendfile()系统调用来完成这项工作。在这种情况下,Express是否支持这个?

1 个答案:

答案 0 :(得分:6)

不,这不是真的。您可以轻松地发送大型(大于2-3 MB)的文件而不会阻塞。那些抱怨像这样阻止Node事件循环的人只是不知道他们在做什么。

您不一定需要使用Express才能获得此行为。

话虽如此,如果您想要的是文件服务器,则没有理由使用NodeJS。只需将Apache指向一个目录,然后让它飞起来。为什么重新发明轮子只是为了使用新的性感技术,当老忠实的人做得很好?

如果您想将节点用作简单的http服务器,我可以推荐非常简单的命令行模块。

https://npmjs.org/package/http-server

我没有查看模块的代码,但可能没有针对大文件进行优化。在这种情况下,让我们定义大,作为不容易在内存中缓存的文件(无论这对您的设置意味着什么)。如果您的用例需要更多优化(例如管道“大”文件),您可能仍然需要编写自己的模块,但这将使您快速启动,并且在您需要时可用于一般开发的优秀实用程序快速提供目录。