标签:blank 测试 接受 程序 file 模块安装 参数 obj 相对
转载自:https://itbilu.com/nodejs/core/VJYaAfKrl.html
MIME,即:Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型。其主要用途是设置某种扩展名的文件的响应程序类型,我们可以认为是当指定扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。在HTTP中,是通过名为Content-Type的HTTP头来设置或响应对应的文件类型的。例如:当服务器要向客户端发送的内容图类为.jpg图片,就需要将Content-Type头设置为image/jpeg,而客户端同样会根据Content-Type对服务器内容进行解析。
MIME和Content-Type是文件类型设置和解板的标准。当服务器要对某种扩展名文件发送到客户端时,会根据文件扩展名设置Content-Type头。而客户端(可以认为是浏览器),对服务器内容进行解析时也需要Content-Type所代表的MIME找到内容的解析程序。MIME类型非常多,当我们在服务端设置发送内容格式时或当我们对服务端内容进行解析时,对几百种MIME类型进行处理工作量会非常巨大。
推荐一个NPM包:mime。mime模块使用Apache项目的mime.types文件,该文件包含了超过600个Content-Type类型数据,并且支持添加自定义的MIME类型。
mime安装mime模块是一个基于mime-db的MIME类型解析及处理程序。
使用npm安装模块:
npm install mime
安装后,mime模块测试:
npm run test
mime模块安装后,可以命令行下使用(命令行下使用需要npm install -g全局安装),格式如下:
mime [path_string]
如,mime模块查看当前目录下app.js文件的类型:
mime app.js
//application/javascript
mime模块的查询API通过mime模块可以通过文件及其扩展查询与文件关联的MIME类型,也可以通过MIME类型反向查找文件的扩展名。
mime.lookup(path)使用mime模块查询文件的MIME类型:
var mime = require(‘mime‘);
mime.lookup(‘/path/to/file.txt‘); // => ‘text/plain‘
mime.lookup(‘file.txt‘); // => ‘text/plain‘
mime.lookup(‘.TXT‘); // => ‘text/plain‘
mime.lookup(‘htm‘); // => ‘text/html‘
mime.default_type返回默认类型
当通过mime.lookup()查找的文件MIME类型不存在时会返回application/octet-stream类型。mime.lookup()查找的文件时路径不区分大小写。可以通过mime.default_type返回当前使用的默认类型。
mime.extension(type)mime模块提供了查询文件扩展名的方法,我们可以通过Content-Type所表示的MIME类型查找到文件的扩展名,并最终确认内容解析形式和解析程序。
mime.extension(‘text/html‘); // => ‘html‘ mime.extension(‘application/octet-stream‘); // => ‘bin‘
mime.charsets.lookup()通过mime模块可以查询MIME类型所使用的编码:
mime.charsets.lookup(‘text/plain‘); // => ‘UTF-8‘
mime自定义类型当mime模块自带的mime-db库不存在或不能满足我们所需的MIME类型时,还可以自定义MIME类型。
mime.define()mime.define(obj)
该方法接受一个参数obj,是一个表示mime类型/扩展名的对象。
mime.define({ ‘text/x-some-format‘: [‘x-sf‘, ‘x-sft‘, ‘x-sfml‘], ‘application/x-my-type‘: [‘x-mt‘, ‘x-mtt‘], // etc ... }); mime.lookup(‘x-sft‘); // => ‘text/x-some-format‘
mime.load(filepath)mime模块支持从一个Apache的mime.types文件加载MIME类型,相对于自定义类型,从现有文件中加载类型更为方便:
mime.load(‘./my_project.types‘);
mime模块响应或设置Node.js的Content-Type头
标签:blank 测试 接受 程序 file 模块安装 参数 obj 相对
原文地址:http://www.cnblogs.com/jeacy/p/6992435.html