nodejs-mime类型

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

简单点说,mime是一个互联网标准,通过设定它就可以设定文件在浏览器的打开方式。


timg.jpg
1、对于css文件,可以直接提取后缀名,如
if(suffix==".css"){
      res.writeHead("Content-type":"text/css")
}else if(suffix==".html"){
      res.writeHead("Content-type":"text/html")
}
//为了直观,原谅我用了if-else

这种方法其实就是mime模块实现的基础。如前所述,mime是设定文件类型的,csshtml文件的类型归类是"text/",但是视频文件3gp等是"video/",图片文件jpeg是"image/",······ 互联网上还有很多很多的格式,而我们又必须它们一个一个都实现,这才有了统一又方便可重用的mime模块

文末也会贴出近乎所有mime类型

2、使用mime模块设定文件类型
//cnpm install mime  下载mime模块
var mime=require("mime")//引入mime模块
 res.writeHead(200,{'Content-type':mime.getType(filePath)});    //通过后缀名指定mime类型
 res.end(data);
mime使用方法:
  • 使用mime模块查询文件的MIME类型:
mime.getType('/path/to/file.txt');         // => 'text/plain'
mime.getType('file.txt');                  // => 'text/plain'
mime.getType('.TXT');                      // => 'text/plain'
mime.getType('htm');                       // => 'text/html'
  • 查询文件护展名mime.getExtension(type)
mime.getExtension('text/html');                 // => 'html'
mime.getExtension('application/octet-stream');  // => 'bin'
  • mime自定义类型(当mime模块自带的mime-db库不存在或不能满足我们所需的MIME类型时,还可以自定义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'

veblen's promise

exports.types = {
'hqx':'application/mac-binhex40',
'cpt':'application/mac-compactpro',
'csv':['text/x-comma-separated-values', 'text/comma-separated-values',   'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'],
'bin':'application/macbinary',
'dms':'application/octet-stream',
'lha':'application/octet-stream',
'lzh':'application/octet-stream',
'exe':['application/octet-stream', 'application/x-msdownload'],
'class':'application/octet-stream',
'psd':'application/x-photoshop',
'so':'application/octet-stream',
'sea':'application/octet-stream',
'dll':'application/octet-stream',
'oda':'application/oda',
'pdf':['application/pdf', 'application/x-download'],
'ai':'application/postscript',
'eps':'application/postscript',
'ps':'application/postscript',
'smi':'application/smil',
'smil':'application/smil',
'mif':'application/vnd.mif',
'xls':['application/excel', 'application/vnd.ms-excel', 'application/msexcel'],
'ppt':['application/powerpoint', 'application/vnd.ms-powerpoint'],
'wbxml':'application/wbxml',
'wmlc':'application/wmlc',
'dcr':'application/x-director',
'dir':'application/x-director',
'dxr':'application/x-director',
'dvi':'application/x-dvi',
'gtar':'application/x-gtar',
'gz':'application/x-gzip',
'php':'application/x-httpd-php',
'php4':'application/x-httpd-php',
'php3':'application/x-httpd-php',
'phtml':'application/x-httpd-php',
'phps':'application/x-httpd-php-source',
'js':'application/x-javascript',
'swf':'application/x-shockwave-flash',
'sit':'application/x-stuffit',
'tar':'application/x-tar',
'tgz':['application/x-tar', 'application/x-gzip-compressed'],
'xhtml':'application/xhtml+xml',
'xht':'application/xhtml+xml',
'zip':['application/x-zip', 'application/zip', 'application/x-zip-compressed'],
'mid':'audio/midi',
'midi':'audio/midi',
'mpga':'audio/mpeg',
'mp2':'audio/mpeg',
'mp3':['audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'],
'aif':'audio/x-aiff',
'aiff':'audio/x-aiff',
'aifc':'audio/x-aiff',
'ram':'audio/x-pn-realaudio',
'rm':'audio/x-pn-realaudio',
'rpm':'audio/x-pn-realaudio-plugin',
'ra':'audio/x-realaudio',
'rv':'video/vnd.rn-realvideo',
'wav':['audio/x-wav', 'audio/wave', 'audio/wav'],
'bmp':['image/bmp', 'image/x-windows-bmp'],
'gif':'image/gif',
'jpeg':['image/jpeg', 'image/pjpeg'],
'jpg':['image/jpeg', 'image/pjpeg'],
'jpe':['image/jpeg', 'image/pjpeg'],
'png':['image/png', 'image/x-png'],
'tiff':'image/tiff',
'tif':'image/tiff',
'css':'text/css',
'html':'text/html',
'htm':'text/html',
'shtml':'text/html',
'txt':'text/plain',
'text':'text/plain',
'log':['text/plain', 'text/x-log'],
'rtx':'text/richtext',
'rtf':'text/rtf',
'xml':'text/xml',
'xsl':'text/xml',
'mpeg':'video/mpeg',
'mpg':'video/mpeg',
'mpe':'video/mpeg',
'qt':'video/quicktime',
'mov':'video/quicktime',
'avi':'video/x-msvideo',
'movie':'video/x-sgi-movie',
'doc':'application/msword',
'docx':['application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'],
'xlsx':['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'],
'word':['application/msword', 'application/octet-stream'],
'xl':'application/excel',
'eml':'message/rfc822',
'json':['application/json', 'text/json']
};

Do it well, I've been here anytime!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343