nodejs 学习记录(三)-mime模块学习
来源:互联网 发布:b超三个数据看男女技巧 编辑:程序博客网 时间:2024/05/29 02:15
引至https://www.npmjs.com/package/mime
mime
一个全面的,规整MIME类型的模块。
版本二是版本一的一个转折点,具体的变更如下:
ES6兼容但是要求node的版本要大于6,这可以算得上是一个巨大的改变,除此之外,有些对应的接口方法也做了些修改,如:
lookup() 被getType()替换,
extension() 被getExtension() 方法替换
charset() 方法被load() 方法替换
如果您依旧喜欢这个旧版本,点击查看版本一的文档
npm 安装mime模块
npm install mime
入门案例
const mime = require("mime");
mime.getType(“text”);
mime.getExtension("text/plain");
mime api 的其他接口详解请往下看:
精简版(lite)
这个模块还有一个“精简”版本,它省略特定于供应商的(/vnd)和实验性的(/x-)类型。精简的版本仅为2.5 KB,而源版本为8KB。具体的调用代码如下:
const liteMime = require("mime/lite");
浏览器版(browser)
要在浏览器中使用这个模块,您可以使用webpack或浏览器来打包您的代码。但是,浏览器就绪的版本可以通过wzrd.d提供。具体的调用方式如下:
<script src="http://wzrd.in/standalone/mime@latest"></script>
也可以使用精简版本调用,调用的方式如下:
<script src="http://wzrd.in/standalone/mime%2flite@latest"></script>
<!-- 调用mime的api -->
<script>
mime.getType(...); // etc.
</script>
mime-db:是MIME类型信息的“真正来源”。它不是一个API。相反,它是由nodejs社区从IANA、Apache、NGINX提取出来的一套规范数据集。
mime-types:是一个围绕mime-db的瘦包装器,它提供了一个与mime兼容(ish)的API,但是仅支持node1.3.6 版本以下的API。
mime:就像node第二版一样,它是一个自包含的模块,它与预优化版本的mime-db数据集绑定在一起。它提供了一个简化的API,具有以下特征:
1、内部一致的类型扩展映射。例如,mime.getType(mime.getextension(type))==类型总是正确的
2、与行业最佳实践相一致的命名方式
3、各种模块的大小比较:
module size
mime-db 18kb
mime-types 18kb
mime 8kb
mime/lite 2kb
MIME API
require("mime")和require("mime/lite")返回的都是mime 类型的实例,实例如下:
new mime(typeMap,...more map)
这个模块的大多数用户不需要直接创建mime实例。但是,如果您想要创建自定义映射,您可以这样做:
// 引入mime 模块
const Mime = require('mime/Mime');
// 定义映射类型
const typeMap = {
'text/abc': ['abc', 'alpha', 'bet'],
'text/def': ['leppard']
};
// 使用mime实例
const myMime = new Mime(typeMap);
myMime.getType('abc');
myMime.getExtension('text/def');
mime.getType(pathOrExtension)
获取给定路径或扩展的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'
在未检测到或识别扩展的情况下返回null:
mime.getType('foo/txt'); // ⇨ null
mime.getType('bogus_type'); // ⇨ null
mime.getExtension(type)
获得给定mime类型的扩展名。Charset选项(通常包括在content-type头部中)被忽略。
mime.getExtension('text/plain'); // ⇨ 'txt'
mime.getExtension('application/json'); // ⇨ 'json'
mime.getExtension('text/html; charset=utf8'); // ⇨ 'html'
mime.define(typeMap[, force = false])
定义更多类型的映射
类型映射是一种类型-扩展的映射,如在上面的新Mime中所记录的那样。
默认情况下,如果您试图将一个类型映射到另一个类型的扩展,那么这个方法将会抛出一个错误。传递true对于force参数将会抑制该行为(覆盖之前的映射)。
mime.define({'text/x-abc': ['abc', 'abcd']});
mime.getType('abcd'); // ⇨ 'text/x-abc'
mime.getExtension('text/x-abc') // ⇨ 'abc'
- nodejs 学习记录(三)-mime模块学习
- nodejs学习记录(1)
- nodejs学习2-模块
- Nodejs学习笔记(三)
- 深入浅出nodejs学习记录
- NodeJs学习三:模块的定义与引入
- Nodejs学习笔记(二)--- 事件模块
- (3)nodejs学习--系统模块
- (4)nodejs学习---自定义模块
- nodejs学习三
- nodejs学习教程 nodejs express模块安装
- nodejs中的async模块学习
- nodejs学习3-Event模块
- nodejs基础学习--模块安装
- nodejs学习之--fs模块
- nodejs系列学习:module-----(三)
- Nodejs 学习(三)--文件操作
- NodeJS学习(三) npm打包
- java线程池
- iOS nomatic strong,weak,retain,assign,copy 等的区别。
- 一个链表中包含环,请找出该链表的环的入口结点
- Multidex详解
- git教程
- nodejs 学习记录(三)-mime模块学习
- 初学c#知识整理(二)
- Google VR VIEW FOR THE WEB
- 软件/插件推荐
- Python自学笔记
- 介绍几种范强的方式 长期更新
- 如何读懂火焰图?
- jmeter连接数据库,参数化内容
- maven项目的聚合和继承