Geweldige gemeenschapsmodule

Mime

Een uitgebreide, compacte module van het MIME-type.

Bouwstatus

Versie 2 Opmerkingen

Versie 2 is een belangrijke wijziging ten opzichte van 1.x, zoals de semver impliceert.

  • lookup()hernoemd naargetType()
  • extension()hernoemd naargetExtension()
  • charset()en load()methoden zijn verwijderd

Als u de voorkeur geeft aan de oudere versie van deze module , kunt u de documenten van versie 1 hiernpm install mime@^1 vinden .

Installeren

NPM

1
npm install mime

Browser

Het wordt aanbevolen dat u een bundelprogramma zoals webpack of browserify gebruikt om uw code te verpakken. Er zijn echter browserklare versies beschikbaar via wzrd.in. Bijvoorbeeld voor de volledige versie:

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

Of, voor de mime/liteversie:

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

Snelle start

Voor de volledige versie (800+ MIME-typen, 1.000+ extensies):

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

Zie Mime API hieronder voor API-details.

Lichte versie

Er is ook een 'lite'-versie van deze module waarin de leveranciersspecifieke ( */vnd.*) en experimentele ( */x-*) typen zijn weggelaten. Deze weegt ongeveer 2,5 KB, vergeleken met 8 KB voor de volledige versie. De Lite-versie laden:

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

Mime .vs. mime-types .vs. mime-db-modules

Voor degenen onder u die zich afvragen wat het verschil is tussen deze [populaire] NPM-modules: hier is een kort overzicht ...

mime-dbis "de bron van de waarheid" voor informatie over het MIME-type. Het is geen API. Het is eerder een canonieke dataset van definities van het MIME-type afkomstig uit IANA, Apache, NGINX en aangepaste toewijzingen ingediend door de Node.js-gemeenschap.

mime-typesis een dunne verpakking rond mime-db die een API-drop-in biedt die compatibel is met mime @ < v1.3.6API.

mimeis vanaf v2 een op zichzelf staande module, gebundeld met een vooraf geoptimaliseerde versie van de mime-dbdataset. Het biedt een vereenvoudigde API met de volgende kenmerken:

  • Intelligent opgeloste typeconflicten (zie mime-score voor details)
  • Naamgeving van methoden consistent met best practices uit de branche
  • Compacte footprint, bijvoorbeeld de verkleinde + gecomprimeerde afmetingen van de verschillende modules:
Module Maat
mime-db 18 KB
mime-types hetzelfde als mime-db
mime 8 KB
mime/lite 2 KB

Mime-API

Beide require('mime')en require('mime/lite')retourneren exemplaren van de MIME-klasse, hieronder gedocumenteerd.

new Mime(typeMap, ... more maps)

De meeste gebruikers van deze module hoeven Mime-instanties niet rechtstreeks aan te maken. Als u echter aangepaste toewijzingen wilt maken, kunt u dat als volgt doen...

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'

Als er meer dan één kaartargument wordt opgegeven, wordt elke kaart define()op volgorde bewerkt (zie hieronder).

mime.getType(pathOrExtension)

Haal het MIME-type op voor het opgegeven pad of de opgegeven extensie

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'

nullwordt geretourneerd in gevallen waarin een extensie niet wordt gedetecteerd of herkend

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

mime.getExtension(type)

Haal extensie op voor het opgegeven MIME-type. Tekensetopties (vaak opgenomen in Content-Type-headers) worden genegeerd.

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])

Definieer [meer] typetoewijzingen.

typeMapis een kaart van type -> extensies, zoals gedocumenteerd in new Mime, hierboven.

Standaard genereert deze methode een foutmelding als u een type probeert toe te wijzen aan een extensie die al aan een ander type is toegewezen. Als u truehet forceargument doorgeeft, wordt dit gedrag onderdrukt (waarbij eerdere toewijzingen worden overschreven).

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

Opdrachtregel

1
mime [path_or_extension]

E

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

Prijsverlaging gegenereerd uitsrc/README_js.mddoorRunMD-logo