Mímica
Un módulo MIME completo e compacto.
Notas da versión 2
A versión 2 supón un cambio radical desde 1.x como implica sempre. Especificamente:
lookup()
renomeado agetType()
extension()
renomeado agetExtension()
charset()
eload()
elimináronse os métodos
Se prefires a versión antiga deste módulo, npm install mime@^1
pódense atopar aquí os documentos da versión 1 .
Instalar
NPM
1npm install mime
Browser
Recoméndase que use un empaquetador como webpack ou browserify para empaquetar o seu código. Non obstante, as versións listas para o navegador están dispoñibles a través de wzrd.in. Por exemplo, para a versión completa:
1
2
3
4<script src="https://wzrd.in/standalone/mime@latest"></script>
<script>
mime.getType(...); // etc.
<script>
Ou, para a mime/lite
versión:
1
2
3
4<script src="https://wzrd.in/standalone/mime%2flite@latest"></script>
<script>
mimelite.getType(...); // (Note `mimelite` here)
<script>
Inicio rápido
Para a versión completa (máis de 800 tipos MIME, máis de 1.000 extensións):
1
2
3
4
5const mime = require('mime');
mime.getType('txt'); // ⇨ 'text/plain'
mime.getExtension('text/plain'); // ⇨ 'txt'
Vexa a continuación a API Mime para máis detalles sobre a API.
Versión Lite
Tamén hai unha versión "lite" deste módulo que omite os tipos específicos do provedor ( */vnd.*
) e experimentais ( */x-*
). Pesa aproximadamente 2,5 KB, en comparación con 8 KB para a versión completa. Para cargar a versión lite:
1const mime = require('mime/lite');
Mime .vs. Mime-types .vs. Mime-db módulos
Para aqueles de vostedes que se pregunten pola diferenza entre estes [populares] módulos NPM, aquí tes un breve resumo ...
mime-db
é "a fonte da verdade" para a información de tipo MIME. Non é unha API. Pola contra, é un conxunto de datos canónico de definicións de tipo MIME extraídas de IANA, Apache, NGINX e mapas personalizados enviados pola comunidade Node.js.
mime-types
é un envoltorio fino en torno a mime-db que proporciona un API de entrada compatible (ish) con mime @ < v1.3.6
API.
mime
é, a partir de v2, un módulo autónomo incluído cunha versión do mime-db
conxunto de datos pre-optimizada . Ofrece unha API simplificada coas seguintes características:
- Conflitos de tipo resoltos de xeito intelixente (ver detalles da mime )
- Nomes de métodos compatibles coas mellores prácticas da industria
- Pegada compacta. Por exemplo, os tamaños comprimidos + comprimidos dos distintos módulos:
Módulo | Tamaño |
---|---|
mime-db |
18 KB |
mime-types |
igual que mime-db |
mime |
8 KB |
mime/lite |
2 KB |
API Mime
Ambas require('mime')
e require('mime/lite')
instancias de retorno da clase MIME, documentadas a continuación.
new Mime(typeMap, ... more maps)
A maioría dos usuarios deste módulo non terán que crear instancias Mime directamente. Non obstante, se desexa crear mapas personalizados, pode facelo do seguinte xeito ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14// Require Mime class
const Mime = require('mime/Mime');
// Define mime type -> extensions map
const typeMap = {
'text/abc': ['abc', 'alpha', 'bet'],
'text/def': ['leppard']
};
// Create and use Mime instance
const myMime = new Mime(typeMap);
myMime.getType('abc'); // ⇨ 'text/abc'
myMime.getExtension('text/def'); // ⇨ 'leppard'
Se se fornece máis dun argumento de mapa, edítase cada mapa define()
(ver máis abaixo), en orde.
mime.getType(pathOrExtension)
Obteña o tipo MIME para o camiño ou a extensión indicados. Ex
1
2
3
4
5
6
7
8
9mime.getType('js'); // ⇨ 'application/javascript'
mime.getType('json'); // ⇨ 'application/json'
mime.getType('txt'); // ⇨ 'text/plain'
mime.getType('dir/text.txt'); // ⇨ 'text/plain'
mime.getType('dir\\text.txt'); // ⇨ 'text/plain'
mime.getType('.text.txt'); // ⇨ 'text/plain'
mime.getType('.txt'); // ⇨ 'text/plain'
null
devólvese nos casos en que non se detecta ou recoñece unha extensión
1
2
3mime.getType('foo/txt'); // ⇨ null
mime.getType('bogus_type'); // ⇨ null
mime.getExtension(type)
Obtén a extensión do tipo MIME indicado. As opcións do xogo de caracteres (moitas veces incluídas nas cabeceiras de tipo contido) son ignoradas.
1
2
3
4mime.getExtension('text/plain'); // ⇨ 'txt'
mime.getExtension('application/json'); // ⇨ 'json'
mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
mime.define(typeMap[, force = false])
Define [máis] asignacións de tipos.
typeMap
é un mapa de tipo -> extensións, como se documenta en new Mime
arriba.
Por defecto, este método producirá un erro se intenta asignar un tipo a unha extensión que xa está asignada a outro tipo. Se pasa true
o
force
argumento suprimirase este comportamento (anulando calquera asignación anterior).
1
2
3
4
5mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
Liña de comando
1mime [path_or_extension]
Por exemplo
1
2> mime scripts/jquery.js
application/javascript
Redución xerada a partir de src/README_js.md por