Impresionante módulo comunitario

Mimo

Un módulo de tipo MIME completo e compacto.

Estado de construción

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()e load()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

1
npm 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/liteversió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
const 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:

1
const 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.6API.

mimeé, a partir da versión 2, un módulo autónomo que inclúe unha versión optimizada previamente do mime-dbconxunto 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 8
mime.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'

nulldevólvese nos casos en que non se detecta nin se recoñece unha extensión

1 2
mime.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 3
mime.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 trueo forceargumento suprimirá este comportamento (anullando calquera asignación anterior).

1 2 3 4
mime.define({'text/x-abc': ['abc', 'abcd']}); mime.getType('abcd'); // ⇨ 'text/x-abc' mime.getExtension('text/x-abc') // ⇨ 'abc'

Liña de comandos

1
mime [path_or_extension]

E

1 2
> mime scripts/jquery.js application/javascript

Desconto xerado a partir desrc/README_js.mdporLogotipo de RunMD