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

joh*_*ith 3 node.js

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

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

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

Chr*_*sCM 6

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

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

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

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

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

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

  • 对于"文件服务器",我会说CDN或nginx会比Apache更好...... (3认同)