Mime
Een uitgebreide, compacte module van het MIME-type.
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()
enload()
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
1npm 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/lite
versie:
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
4const 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:
1const 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-db
is "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-types
is een dunne verpakking rond mime-db die een API-drop-in biedt die compatibel is met mime @ < v1.3.6
API.
mime
is vanaf v2 een op zichzelf staande module, gebundeld met een vooraf geoptimaliseerde versie van de mime-db
dataset. 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
8mime.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
wordt geretourneerd in gevallen waarin een extensie niet wordt gedetecteerd of herkend
1
2mime.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
3mime.getExtension('text/plain'); // ⇨ 'txt'
mime.getExtension('application/json'); // ⇨ 'json'
mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
mime.define(typeMap[, force = false])
Definieer [meer] typetoewijzingen.
typeMap
is 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 true
het
force
argument doorgeeft, wordt dit gedrag onderdrukt (waarbij eerdere toewijzingen worden overschreven).
1
2
3
4mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
Opdrachtregel
1mime [path_or_extension]
E
1
2> mime scripts/jquery.js
application/javascript
Prijsverlaging gegenereerd uitsrc/README_js.mddoor