[Fixed] Express: Setting content-type based on path/file?

Issue

I know Express has the res.contentType() method, but how to set automatically content type based on path/file (including static content)?

Solution

Connect will automatically set the content type, unless you explicitly set it yourself. Here’s the snippet that does it. It uses mime.lookup and mime.charsets.lookup

// mime type
type = mime.lookup(path);

//<SNIP>....

// header fields
if (!res.getHeader('content-type')) {
  var charset = mime.charsets.lookup(type);
  res.setHeader('Content-Type', type + (charset ? '; charset=' + charset : ''));
}

If this isn’t working for you, post your code as your custom code is likely interfering with the default behavior somehow.

Leave a Reply

(*) Required, Your email will not be published