멋진 커뮤니티 모듈

마임

포괄적 인 소형 MIME 유형 모듈.

빌드 상태

버전 2 노트

버전 2는 semver가 암시하는대로 1.x에서 크게 변경되었습니다.

  • lookup()getType() 이름이 변경되었습니다.
  • extension()getExtension() 이름이 변경되었습니다.
  • charset()load() 메소드가 제거되었습니다

이 모듈의 레거시 버전을 선호하는 경우 npm install mime@^1 참조하십시오 . 버전 1 문서는 여기에 있습니다 .

설치

NPM

1
npm install mime

Browser

당신이 그것을 Bundler를 같은 사용하는 것이 좋습니다 웹팩 또는 Browserify . 그러나이로 코드를 패키지 페널티를, 브라우저 READY 버전이 가능한 비아 wzrd.in.있는 전체 버전에서 예를 들면 :

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

또는 mime/lite 버전의 경우 :

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

빠른 시작

정식 버전 (800+ MIME 유형, 1,000+ 확장) :

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

API 세부 사항은 아래의 Mime API를 참조하십시오.

라이트 버전

이 모듈에는 공급 업체별 ( */vnd.* ) 및 실험용 ( */x-* ) 유형을 생략하는 "lite"버전도 있으며 전체 버전의 8KB와 비교하여 ~ 2.5KB입니다. 라이트 버전을로드하려면 :

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

Mime .vs. Mime 유형 .vs. Mime-db 모듈

이 [인기] NPM 모듈의 차이점에 대해 궁금한 분들을 위해 간단한 요약 설명이 있습니다.

mime-db 는 MIME 유형 정보의 "진실의 원천"이며 API가 아니라 IANA, Apache, NGINX 및 Node.js 커뮤니티에서 제출 한 사용자 정의 매핑에서 가져온 MIME 유형 정의의 표준 데이터 세트입니다. .

mime-typesmime @ < v1.3.6 API와 API 드롭 인 호환 (ish)을 제공하는 mime-db 주변의 얇은 래퍼입니다.

v2부터 mime 은 미리 최적화 된 버전의 mime-db 데이터 세트와 함께 제공되는 자체 포함 된 모듈이며 다음과 같은 특징을 가진 단순화 된 API를 제공합니다.

  • 지능적으로 해결 된 유형 충돌 (자세한 내용은 mime-score 참조)
  • 업계 모범 사례와 일치하는 분석법 명명
  • Compact footprint. Eg The minified+compressed sizes of the various modules :
모듈 사이즈
mime-db 18KB
mime-types mime-db와 동일
mime 8KB
mime/lite 2KB

마임 API

아래에 설명 된 MIME 클래스의 인스턴스를 require('mime')require('mime/lite') 반환해야합니다.

new Mime(typeMap, ... more maps)

이 모듈의 대부분의 사용자는 Mime 인스턴스를 직접 만들 필요는 없지만 사용자 지정 매핑을 만들려면 다음과 같이하십시오.

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'

둘 이상의 맵 인수가 제공되면 각 맵은 순서대로 define() (아래 참조).

mime.getType(pathOrExtension)

주어진 경로 또는 확장자에 대한 MIME 유형을 가져옵니다.

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 이 리턴됩니다.

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

mime.getExtension(type)

지정된 MIME 유형에 대한 확장명을 가져옵니다 .Charset 옵션 (종종 Content-Type 헤더에 포함됨)은 무시됩니다.

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

[more] 유형 매핑을 정의하십시오.

typeMap 은 위의 new Mime 설명되어있는 typeMap > 확장의 맵입니다.

윌 투사 기본은이 방법함으로써, 오류로하면 IF 유형의 IS 확장이 이미 다른에 할당 된 것을에 A 형의지도에 시도. 전달 true 상기 위해 force 의지에 의해 인수 않도록하는 값을이 동작합니다 (이전 매핑 무시).

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

커맨드 라인

1
mime [path_or_extension]

예 :

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

src/README_js.md 에서 생성 된 마크 다운 RunMD 로고