node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



NPM Version NPM Downloads Node.js Version Build Status Test Coverage

The ultimate javascript content-type utility.

Similar to node-mime, except:

  • No fallbacks. Instead of naively returning the first available type, mime-types simply returns false, so do var type = mime.lookup('unrecognized') || 'application/octet-stream'.
  • No new Mime() business, so you could do var lookup = require('mime-types').lookup.
  • Additional mime types are added such as jade and stylus via mime-db
  • No .define() functionality

Otherwise, the API is compatible.


$ npm install mime-types

Adding Types

All mime types are based on mime-db, so open a PR there if you'd like to add mime types.


var mime = require('mime-types')

All functions return false if input is invalid or not found.


Lookup the content-type associated with a file.

mime.lookup('json')             // 'application/json' 
mime.lookup('.md')              // 'text/x-markdown' 
mime.lookup('file.html')        // 'text/html' 
mime.lookup('folder/file.js')   // 'application/javascript' 
mime.lookup('folder/.htaccess') // false 
mime.lookup('cats') // false 


Create a full content-type header given a content-type or extension.

mime.contentType('markdown')  // 'text/x-markdown; charset=utf-8' 
mime.contentType('file.json') // 'application/json; charset=utf-8' 
// from a full path 
mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8' 


Get the default extension for a content-type.

mime.extension('application/octet-stream') // 'bin' 


Lookup the implied default charset of a content-type.

mime.charset('text/x-markdown') // 'UTF-8' 

var type = mime.types[extension]

A map of content-types by extension.

[extensions...] = mime.extensions[type]

A map of extensions by content-type.