Fantastisches Community-Modul

Mime

Ein umfassendes, kompaktes MIME-Modul.

Build-Status

Anmerkungen zu Version 2

Version 2 ist eine bahnbrechende Änderung von 1.x, wie der Semver impliziert. Insbesondere:

  • lookup() umbenannt in getType()
  • extension() umbenannt in getExtension()
  • charset()und load()Methoden wurden entfernt

Wenn Sie die ältere Version dieses Moduls bevorzugen, finden Sie die npm install mime@^1Dokumente zur Version 1 hier .

Installieren

NPM

1
npm install mime

Browser

Es wird empfohlen, einen Bundler wie Webpack oder browserify zu verwenden, um Ihren Code zu verpacken. Browser-fähige Versionen sind jedoch über wzrd.in verfügbar. ZB Für die Vollversion:

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

Oder für die mime/liteVersion:

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

Schnellstart

Für die Vollversion (über 800 MIME-Typen, über 1.000 Erweiterungen):

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

Weitere Informationen zur API finden Sie unten unter Mime-API .

Lite-Version

Es gibt auch eine "Lite" -Version dieses Moduls, bei der herstellerspezifische ( */vnd.*) und experimentelle ( */x-*) Typen weggelassen werden. Sie wiegt ~ 2,5 KB, verglichen mit 8 KB bei der Vollversion. So laden Sie die Lite-Version:

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

Mime .vs. Mime-Typen .vs. Mime-DB-Module

Für diejenigen unter Ihnen, die sich über den Unterschied zwischen diesen [beliebten] NPM-Modulen wundern, hier ein kurzer Überblick ...

mime-db ist "die Quelle der Wahrheit" für MIME-Typinformationen. Es handelt sich nicht um eine API. Es handelt sich vielmehr um einen kanonischen Datensatz von MIME-Typdefinitionen, die aus IANA-, Apache-, NGINX- und benutzerdefinierten Zuordnungen stammen, die von der Node.js-Community übermittelt wurden.

mime-typesist ein Thin Wrapper um mime-db, der ein API-Drop-In bereitstellt, das mit der mime @ < v1.3.6API kompatibel (ish) ist .

mimeist ab Version 2 ein eigenständiges Modul, das mit einer voroptimierten Version des mime-dbDatasets gebündelt ist . Es bietet eine vereinfachte API mit den folgenden Merkmalen:

  • Intelligent gelöste Typkonflikte ( Details siehe Mime-Score )
  • Benennung der Methoden im Einklang mit den Best Practices der Branche
  • Kompakte Grundfläche. ZB Die minimierten + komprimierten Größen der verschiedenen Module:
Modul Größe
mime-db 18 KB
mime-types das gleiche wie mime-db
mime 8 KB
mime/lite 2 KB

Mime-API

Beide require('mime')und require('mime/lite')Rückgabeinstanzen der MIME-Klasse, die unten dokumentiert sind.

new Mime(typeMap, ... more maps)

Die meisten Benutzer dieses Moduls müssen Mime-Instanzen nicht direkt erstellen. Wenn Sie jedoch benutzerdefinierte Zuordnungen erstellen möchten, können Sie dies wie folgt tun ...

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'

Wenn mehr als ein Kartenargument angegeben wird, wird jede Karte der define()Reihe nach bearbeitet (siehe unten).

mime.getType(pathOrExtension)

Holen Sie sich den MIME-Typ für den angegebenen Pfad oder die angegebene Erweiterung

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 wird in Fällen zurückgegeben, in denen eine Erweiterung nicht erkannt oder erkannt wird

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

mime.getExtension(type)

Rufen Sie die Erweiterung für den angegebenen MIME-Typ ab. Zeichensatzoptionen (häufig in Content-Type-Headern enthalten) werden ignoriert.

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

Definieren Sie [mehr] Typzuordnungen.

typeMapist eine Karte vom Typ -> Erweiterungen, wie oben dokumentiert new Mime.

Standardmäßig gibt diese Methode einen Fehler aus, wenn Sie versuchen, einen Typ einer Erweiterung zuzuordnen, die bereits einem anderen Typ zugewiesen ist. Wenn Sie truedas forceArgument übergeben, wird dieses Verhalten unterdrückt (wobei alle vorherigen Zuordnungen überschrieben werden).

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

Befehlszeile

1
mime [path_or_extension]

Z.B

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

Abschlag generiert von src/README_js.md durch RunMD-Logo