Mime
Ein umfassendes, kompaktes Modul vom Typ MIME.
Anmerkungen zu Version 2
Version 2 ist eine bahnbrechende Änderung von 1.x, wie der Semver andeutet.
lookup()
umbenannt ingetType()
extension()
umbenannt ingetExtension()
charset()
undload()
Methoden wurden entfernt
Wenn Sie die Legacy-Version dieses Moduls bevorzugen, finden Sie die npm install mime@^1
Dokumentation zu Version 1 hier .
Installieren
NPM
1npm 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/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 (800+ MIME-Typen, 1.000+ Erweiterungen):
1
2
3
4
5const 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:
1const 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-types
ist ein dünner Wrapper um mime-db, der ein API-Drop-in bereitstellt, das mit mime @ < v1.3.6
API kompatibel ist .
mime
ist ab v2 ein eigenständiges Modul, das mit einer voroptimierten Version des mime-db
Datensatzes 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
9mime.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
3mime.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
4mime.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 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 true
des
force
Arguments unterdrückt dieses Verhalten (überschreibt alle vorherigen Zuordnungen).
1
2
3
4
5mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
Befehlszeile
1mime [path_or_extension]
Z.B
1
2> mime scripts/jquery.js
application/javascript
Abschlag generiert von src/README_js.md von