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() Methoden charset() und load() wurden entfernt

Wenn Sie die ältere Version dieses Moduls bevorzugen, npm install mime@^1 Sie bitte npm install mime@^1 1. Die Dokumente zur Version 1 finden Sie 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. Beispiel: 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/lite Version:

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-types ist ein Thin Wrapper um mime-db, der eine API-Drop-In-kompatibel (ish) mit der API mime @ < v1.3.6 bereitstellt.

mime ist ab Version 2 ein eigenständiges Modul, das mit einer voroptimierten Version des mime-db Datasets 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
  • Compact footprint. Eg The minified+compressed sizes of the various modules :
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 Reihe nach define() ed (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 zurückgegeben, wenn eine Erweiterung nicht erkannt oder erkannt wird

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

mime.getExtension(type)

Holen Sie sich die Erweiterung für den angegebenen MIME-Typ. 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.

typeMap ist eine Karte mit Typ -> Erweiterungen, wie oben in new Mime dokumentiert.

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 für das Argument force true force 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

Markdown generiert von src/README_js.md von RunMD-Logo