Allen
Allen

Reputation: 3771

How to add MIME type with Express

I'm trying to get Firefox to play a video tag. Normally, I would just add this to an .htaccess file on Apache:

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

How would I do this with Express / NodeJS?

Upvotes: 7

Views: 16444

Answers (3)

heatherz
heatherz

Reputation: 156

For express 4.x, good documentation on mime-type can be found in https://github.com/broofa/node-mime.

For example, Safari browser would show the content of csv instead of downloading the csv with <a href="some.csv">download here</a>.

You can get around this by adding the following

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

Upvotes: 6

ABCD.ca
ABCD.ca

Reputation: 2505

There is a static text file which is probably better, called "mime.types"

Upvotes: 0

sgress454
sgress454

Reputation: 24958

Assuming it's a video in a public directory, you can use the static middleware for this:

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

If you need to alter the mime table (like to add or change an extension, do):

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

But I think all the ones you listed are already there.

Then requests to /foo.wav will serve up /public/foo.wav with the proper content-type header, provided no other middleware handles the route first.

Upvotes: 1

Related Questions