You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					91 lines
				
				2.1 KiB
			
		
		
			
		
	
	
					91 lines
				
				2.1 KiB
			| 
											3 years ago
										 | # mime
 | ||
|  | 
 | ||
|  | Comprehensive MIME type mapping API based on mime-db module. | ||
|  | 
 | ||
|  | ## Install
 | ||
|  | 
 | ||
|  | Install with [npm](http://github.com/isaacs/npm): | ||
|  | 
 | ||
|  |     npm install mime | ||
|  | 
 | ||
|  | ## Contributing / Testing
 | ||
|  | 
 | ||
|  |     npm run test | ||
|  | 
 | ||
|  | ## Command Line
 | ||
|  | 
 | ||
|  |     mime [path_string] | ||
|  | 
 | ||
|  | E.g. | ||
|  | 
 | ||
|  |     > mime scripts/jquery.js
 | ||
|  |     application/javascript | ||
|  | 
 | ||
|  | ## API - Queries
 | ||
|  | 
 | ||
|  | ### mime.lookup(path)
 | ||
|  | Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.').  E.g. | ||
|  | 
 | ||
|  | ```js | ||
|  | var mime = require('mime'); | ||
|  | 
 | ||
|  | mime.lookup('/path/to/file.txt');         // => 'text/plain' | ||
|  | mime.lookup('file.txt');                  // => 'text/plain' | ||
|  | mime.lookup('.TXT');                      // => 'text/plain' | ||
|  | mime.lookup('htm');                       // => 'text/html' | ||
|  | ``` | ||
|  | 
 | ||
|  | ### mime.default_type
 | ||
|  | Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.) | ||
|  | 
 | ||
|  | ### mime.extension(type)
 | ||
|  | Get the default extension for `type` | ||
|  | 
 | ||
|  | ```js | ||
|  | mime.extension('text/html');                 // => 'html' | ||
|  | mime.extension('application/octet-stream');  // => 'bin' | ||
|  | ``` | ||
|  | 
 | ||
|  | ### mime.charsets.lookup()
 | ||
|  | 
 | ||
|  | Map mime-type to charset | ||
|  | 
 | ||
|  | ```js | ||
|  | mime.charsets.lookup('text/plain');        // => 'UTF-8' | ||
|  | ``` | ||
|  | 
 | ||
|  | (The logic for charset lookups is pretty rudimentary.  Feel free to suggest improvements.) | ||
|  | 
 | ||
|  | ## API - Defining Custom Types
 | ||
|  | 
 | ||
|  | Custom type mappings can be added on a per-project basis via the following APIs. | ||
|  | 
 | ||
|  | ### mime.define()
 | ||
|  | 
 | ||
|  | Add custom mime/extension mappings | ||
|  | 
 | ||
|  | ```js | ||
|  | mime.define({ | ||
|  |     'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'], | ||
|  |     'application/x-my-type': ['x-mt', 'x-mtt'], | ||
|  |     // etc ... | ||
|  | }); | ||
|  | 
 | ||
|  | mime.lookup('x-sft');                 // => 'text/x-some-format' | ||
|  | ``` | ||
|  | 
 | ||
|  | The first entry in the extensions array is returned by `mime.extension()`. E.g. | ||
|  | 
 | ||
|  | ```js | ||
|  | mime.extension('text/x-some-format'); // => 'x-sf' | ||
|  | ``` | ||
|  | 
 | ||
|  | ### mime.load(filepath)
 | ||
|  | 
 | ||
|  | Load mappings from an Apache ".types" format file | ||
|  | 
 | ||
|  | ```js | ||
|  | mime.load('./my_project.types'); | ||
|  | ``` | ||
|  | The .types file format is simple -  See the `types` dir for examples. |