Fork me on GitHub

nodejs中mime类型文件处理库node-mime

文章概述

本篇文章介绍nodejs中mime类型文件处理库node-mime的使用。

概述

此文档基于node-mime 2.x版本

node-mine

mine项目网址

介绍

node-mime大多用在node项目或js项目中,用于处理响应在浏览器的打开方式;

mime

  • MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。
  • 简单点说,mime是一个互联网标准,通过设定它就可以设定文件在浏览器的打开方式。

使用

  1. npm安装:
1
$ npm install mime --save
  1. js文件中使用;
1
2
3
4
const mime = require('mime');

mime.getType('txt'); // ⇨ 'text/plain'
mime.getExtension('text/plain'); // ⇨ 'txt'

API

  • 根据文件,查询文件的MIME类型:
1
2
3
4
【语法】
getType(path: string): string | null;
【参数】
- path: 带文件扩展名的文件名或文件路径;
1
2
3
4
5
6
7
8
9
10
11
12
13
// 示例
const mime = require('mime');
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'

mime.getType('foo/txt'); // ⇨ null
mime.getType('bogus_type'); // ⇨ null
  • 根据mime类型,查询文件护展名:
1
2
3
4
【语法】
getExtension(mime: string): string | null;
【参数】
- mime: mime类型;
1
2
3
4
5
// 示例
const mime = require('mime');
mime.getExtension('text/plain'); // ⇨ 'txt'
mime.getExtension('application/json'); // ⇨ 'json'
mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
  • 自定义mime类型:
  1. 构造器实例方式:
1
2
3
4
5
6
7
8
9
10
11
12
// 示例
const Mime = require('mime/Mime');

// 创建Mime实例,利用构造器自定义mime类型;
const typeMap = {
'text/abc': ['abc', 'alpha', 'bet'],
'text/def': ['leppard']
};

const myMime = new Mime(typeMap);
myMime.getType('abc'); // ⇨ 'text/abc'
myMime.getExtension('text/def'); // ⇨ 'leppard'
  1. mime调用自定义方法;
1
2
3
4
【语法】
define(mimes: TypeMap, force?: boolean): void;
【参数】
- mimes:自定义的mime类型map集合,以k-v形式,即:mime类型-[文件扩展名数组]。
1
2
3
4
5
6
// 示例
const mime = require('mime');
mime.define({'text/x-abc': ['abc', 'abcd']});

mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
坚持原创技术分享,您的支持将鼓励我继续创作!