mahemoff mahemoff - 8 months ago 51
Node.js Question

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

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


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);


// 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.