Mòdul de comunitat impressionant

Mímica

Un mòdul MIME complet i compacte.

Estat de la compilació

Notes de la versió 2

La versió 2 suposa un canvi radical des de l’1x, com implica sempre el semver. Concretament:

  • lookup() canviat el nom a getType()
  • extension() canviat el nom a getExtension()
  • charset()i load()s’han eliminat els mètodes

Si preferiu la versió heretada d’aquest mòdul, npm install mime@^1podeu trobar els documents de la versió 1. aquí .

Instal·la

NPM

1
npm install mime

Browser

Es recomana que utilitzeu un paquet com webpack o browserify per empaquetar el vostre codi. Tot i això, hi ha versions disponibles per al navegador a través de wzrd.in. Per exemple, per a la versió completa:

1 2 3 4
<script src="https://wzrd.in/standalone/mime@latest"></script> <script> mime.getType(...); // etc. <script>

O, per a la mime/liteversió:

1 2 3 4
<script src="https://wzrd.in/standalone/mime%2flite@latest"></script> <script> mimelite.getType(...); // (Note `mimelite` here) <script>

Començament ràpid

Per a la versió completa (més de 800 tipus MIME, més de 1.000 extensions):

1 2 3 4 5
const mime = require('mime'); mime.getType('txt'); // ⇨ 'text/plain' mime.getExtension('text/plain'); // ⇨ 'txt'

Consulteu l' API Mime a continuació per obtenir informació detallada sobre l'API.

Versió Lite

També hi ha una versió "lite" d'aquest mòdul que omet els tipus específics del proveïdor ( */vnd.*) i experimentals ( */x-*). Pesa aproximadament a 2,5 KB, en comparació amb els 8 KB de la versió completa. Per carregar la versió lite:

1
const mime = require('mime/lite');

Mímica .vs. Mime-types .vs. Mòduls mime-db

Per a aquells que us pregunteu sobre la diferència entre aquests mòduls NPM [populars], aquí teniu un breu resum ...

mime-db és "la font de la veritat" per a la informació de tipus MIME. No és una API. Més aviat, és un conjunt de dades canònic de definicions de tipus mime extretes de IANA, Apache, NGINX i mapes personalitzats enviats per la comunitat Node.js.

mime-typesés un embolcall prim al voltant de mime-db que proporciona un API compatible amb accessos (ish) amb mime @ < v1.3.6API.

mimeés, a partir de v2, un mòdul autònom inclòs amb una versió pre-optimitzada del mime-dbconjunt de dades. Ofereix una API simplificada amb les característiques següents:

  • Conflictes de tipus resolts de manera intel·ligent ( per obtenir més informació, vegeu la puntuació mimica )
  • Nom de mètode compatible amb les millors pràctiques de la indústria
  • Petjada compacta, per exemple, les mides comprimides + comprimides dels diferents mòduls:
Mòdul Mida
mime-db 18 KB
mime-types el mateix que mime-db
mime 8 KB
mime/lite 2 KB

API Mime

Ambdues require('mime')i require('mime/lite')instàncies de retorn de la classe MIME, documentades a continuació.

new Mime(typeMap, ... more maps)

La majoria d’usuaris d’aquest mòdul no hauran de crear directament instàncies Mime, però si voleu crear mapes personalitzats, podeu fer-ho de la següent manera ...

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'

Si es proporciona més d'un argument de mapa, cada mapa define()s'edita (vegeu més avall), per ordre.

mime.getType(pathOrExtension)

Obteniu el tipus MIME per al camí o l'extensió indicats, per exemple

1 2 3 4 5 6 7 8 9
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'

null es torna en els casos en què no es detecta ni es reconeix una extensió

1 2 3
mime.getType('foo/txt'); // ⇨ null mime.getType('bogus_type'); // ⇨ null

mime.getExtension(type)

Obteniu l'extensió per al tipus MIME donat. Les opcions de jocs de caràcters (sovint incloses a les capçaleres de tipus de contingut) s'ignoren.

1 2 3 4
mime.getExtension('text/plain'); // ⇨ 'txt' mime.getExtension('application/json'); // ⇨ 'json' mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'

mime.define(typeMap[, force = false])

Definiu mapes de tipus [més].

typeMapés un mapa de tipus -> extensions, tal com es documenta a la part new Mimesuperior.

Per defecte, aquest mètode generarà un error si intenteu assignar un tipus a una extensió que ja estigui assignada a un altre tipus. Si passeu truel' forceargument, suprimireu aquest comportament (substituint qualsevol assignació anterior).

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

Línia d’ordres

1
mime [path_or_extension]

Per exemple

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

Reducció generada des de src/README_js.md per Logotip RunMD