MIME 类型判断

2018-06-29  本文已影响0人  Leondt

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。Node.js在回应http请求时,要返回一个文件的类型即:'Content-type' 字段,之前练习都是自己判断文件类型,然后直接写死...后来看到别人的代码才发现应该加一个类型判断模块。这里自己实现了一个,但是类型写的不是很全,需要别的类型再添加就行了,这里直接放上代码:

const path = require('path');
const mimeTypes = {
    '.css': 'text/css',
    '.gif': 'image/gif',
    '.html': 'text/html',
    '.ico': 'image/x-icon',
    '.jpeg': 'image/jpeg',
    '.jpg': 'image/jpeg',
    '.js': 'text/javascript',
    '.json': 'application/json',
    '.pdf': 'application/pdf',
    '.png': 'image/png',
    '.svg': 'image/svg+xml',
    '.swf': 'application/x-shockwave-flash',
    '.tiff': 'image/tiff',
    '.txt': 'text/plain',
    '.wav': 'audio/x-wav',
    '.wma': 'audio/x-ms-wma',
    '.wmv': 'video/x-ms-wmv',
    '.xml': 'text/xml'
};

module.exports = (filePath) => {
    // 有可能出现这样的:a.b.js,
    let ext = path.extname(filePath);
    // 如果没有拓展名,就返回路径
    if (!ext) {
        ext = filePath;
    }
    // 如果有对应的后缀名,返回相应的type;没有则返回纯文本
    return mimeTypes[ext] || mimeTypes['.txt'];
};
上一篇下一篇

猜你喜欢

热点阅读