如何使用Express添加MIMEtypes

我试图让Firefox播放video标签。 通常情况下,我只是将它添加到Apache的.htaccess文件中:

AddType video/ogg .ogv AddType video/mp4 .mp4 AddType video/webm .webm AddType audio/mpeg .mp3 AddType audio/ogg .ogg AddType audio/mp4 .m4a AddType audio/wav /wav 

我如何使用Express / NodeJS来做到这一点?

假设它是一个公共目录中的video,您可以使用static中间件:

 app.use(express.static(__dirname + '/public')); 

如果您需要更改MIME表(如添加或更改扩展名,请执行):

 express.mime.type['ogv'] = 'video/ogg'; 

但是我想所有你列出的都已经在那里了。

然后,如果没有其他中间件首先处理路由,那么对/foo.wav请求将使用正确的content-type头来提供/public/foo.wav

有一个可能更好的静态文本文件,称为“mime.types”

对于express 4.x,可以在https://github.com/broofa/node-mimefind有关mime-type的很好的文档。

例如,Safari浏览器将显示 csv的内容,而不是下载带有<a href="some.csv">下载</a>的csv。

你可以通过添加以下来解决这个问题

express.static.mime.define({'application / octet-stream':['csv']})