Tolles Community-Modul

Mime

Ein umfassendes, kompaktes Modul vom Typ MIME.

Build-Status

Anmerkungen zu Version 2

Version 2 ist eine bahnbrechende Änderung von 1.x, wie der Semver andeutet.

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

Wenn Sie die Legacy-Version dieses Moduls bevorzugen, finden Sie die npm install mime@^1Dokumentation zu Version 1 hier .

Installieren

NPM

1
npm install mime

Browser

Es wird empfohlen, einen Bundler wie webpack oder browserify zum Verpacken Ihres Codes zu verwenden. Browser-fähige Versionen sind jedoch über wzrd.in erhältlich. 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/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 (800+ MIME-Typen, 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, die herstellerspezifische ( */vnd.*) und experimentelle ( */x-*) Typen weglässt . Sie wiegt etwa 2,5 KB, verglichen mit 8 KB für die Vollversion. So laden Sie die Lite-Version:

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

Mime .vs. mime-types .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-Typ-Informationen. Es ist keine API. Es ist vielmehr ein kanonischer Datensatz von Mime-Typ-Definitionen aus IANA, Apache, NGINX und benutzerdefinierten Mappings, die von der Node.js-Community eingereicht wurden.

mime-typesist ein dünner Wrapper um mime-db, der ein API-Drop-in bereitstellt, das mit mime @ < v1.3.6API kompatibel ist .

mimeist ab v2 ein eigenständiges Modul, das mit einer voroptimierten Version des mime-dbDatensatzes gebündelt ist und eine vereinfachte API mit den folgenden Eigenschaften bietet:

  • Intelligent gelöste Typkonflikte ( Details siehe Mime-Score )
  • Methodenbenennung im Einklang mit den Best Practices der Branche
  • Kompakter Footprint, zB die verkleinerten + komprimierten Größen der verschiedenen Module:
Modul Größe
mime-db 18 KB
mime-types wie mime-db
mime 8 KB
mime/lite 2 KB

Mime-API

Beide require('mime')und require('mime/lite')geben Instanzen der MIME-Klasse zurück, 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 Map-Argument angegeben wird, wird jede Map der define()Reihe nach bearbeitet (siehe unten).

mime.getType(pathOrExtension)

Rufen Sie den Mime-Typ für den angegebenen Pfad oder die angegebene Erweiterung ab

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)

Erweiterung für den angegebenen MIME-Typ abrufen. Zeichensatzoptionen (oft 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 in 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. Die Übergabe truedes forceArguments unterdrückt dieses Verhalten (überschreibt alle vorherigen Zuordnungen).

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 von RunMD-Logo