Mimo
Un módulo de tipo MIME completo e compacto.
Notas da versión 2
A versión 2 é un cambio radical con respecto á 1.x como implica o servidor. En concreto:
lookup()
renomeado agetType()
extension()
renomeado agetExtension()
charset()
eload()
métodos foron eliminados
Se prefires a versión antiga deste módulo , aquínpm install mime@^1
podes atopar os documentos da versión 1 .
Instalar
NPM
1npm install mime
Browser
Recoméndase que use un paquete de paquetes como webpack ou browserify para empaquetar o seu código. Non obstante, están dispoñibles versións preparadas para o navegador 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
4const mime = require('mime');
mime.getType('txt'); // ⇨ 'text/plain'
mime.getExtension('text/plain'); // ⇨ 'txt'
Consulte a API de Mime a continuación para obter máis información sobre a API.
Versión Lite
Tamén hai unha versión "ligera" deste módulo que omite os tipos específicos do provedor ( */vnd.*
) e os tipos experimentais ( */x-*
). O seu peso é de ~2,5 KB, en comparación cos 8 KB da versión completa. Para cargar a versión simplificada:
1const mime = require('mime/lite');
Módulos tipo .vs. MIME .vs. MIME-db
Para aqueles de vostedes que se preguntan sobre a 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. Máis ben, é un conxunto de datos canónicos de definicións de tipo MIME extraídas de IANA, Apache, NGINX e asignacións personalizadas enviadas pola comunidade Node.js.
mime-types
é un envoltorio fino en torno a mime-db que proporciona unha API de descarga compatible (ish) coa mime @ < v1.3.6
API.
mime
é, a partir da versión 2, un módulo autónomo que inclúe unha versión optimizada previamente do mime-db
conxunto de datos. Ofrece unha API simplificada coas seguintes características:
- Conflitos de tipos resoltos de forma intelixente (consulta a puntuación MIME para máis detalles)
- Denominación do método coherente coas mellores prácticas do sector
- Pegada compacta. Por exemplo, os tamaños reducidos+comprimidos dos distintos módulos:
Módulo | Tamaño |
---|---|
mime-db |
18 KB |
mime-types |
o mesmo que mime-db |
mime |
8 KB |
mime/lite |
2 KB |
API de MIME
Ambos require('mime')
e require('mime/lite')
devolven instancias 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 asignacións personalizadas, pode facelo do seguinte xeito...
1
2
3
4
5
6
7
8
9
10
11
12
13// 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 proporciona máis dun argumento de mapa, cada mapa é define()
editado (ver máis abaixo), por orde.
mime.getType(pathOrExtension)
Obter o tipo MIME para o camiño ou a extensión indicados. Por exemplo
1
2
3
4
5
6
7
8mime.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 nin se recoñece unha extensión
1
2mime.getType('foo/txt'); // ⇨ null
mime.getType('bogus_type'); // ⇨ null
mime.getExtension(type)
Obtén a extensión para o tipo MIME indicado. As opcións do conxunto de caracteres (a miúdo incluídas nas cabeceiras do tipo de contido) ignóranse.
1
2
3mime.getExtension('text/plain'); // ⇨ 'txt'
mime.getExtension('application/json'); // ⇨ 'json'
mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
mime.define(typeMap[, force = false])
Define [máis] mapeamentos de tipos.
typeMap
é un mapa de tipo -> extensións, como se documenta en new Mime
, arriba.
De forma predeterminada, este método xerará un erro se tentas asignar un tipo a unha extensión que xa está asignada a outro tipo. Ao pasar true
o
force
argumento suprimirá este comportamento (anullando calquera asignación anterior).
1
2
3
4mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
Liña de comandos
1mime [path_or_extension]
E
1
2> mime scripts/jquery.js
application/javascript
Desconto xerado a partir desrc/README_js.mdpor