• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    在Node.js中设置响应的MIME类型的代码详解

    发布者: 土豆服务器 | 发布时间: 2025-6-14 15:27| 查看数: 103| 评论数: 0|帖子模式

    一、什么是 MIME 类型(Content-Type)?

    MIME(Multipurpose Internet Mail Extensions)类型用于告诉浏览器或客户端:返回的数据是什么类型的内容
    例如:

      1. text/html
      复制代码
      :HTML 文件
      1. application/json
      复制代码
      :JSON 数据
      1. text/css
      复制代码
      :CSS 样式表
      1. image/png
      复制代码
      :PNG 图片

    二、手动设置 MIME 类型示例
    1. const http = require('http');
    2. const fs = require('fs');
    3. const path = require('path');

    4. // 常见扩展名与 MIME 类型的映射表
    5. const mimeTypes = {
    6.   '.html': 'text/html',
    7.   '.css':  'text/css',
    8.   '.js':   'application/javascript',
    9.   '.json': 'application/json',
    10.   '.png':  'image/png',
    11.   '.jpg':  'image/jpeg',
    12.   '.gif':  'image/gif',
    13.   '.svg':  'image/svg+xml',
    14.   '.ico':  'image/x-icon',
    15.   '.txt':  'text/plain',
    16. };

    17. const server = http.createServer((req, res) => {
    18.   let filePath = '.' + (req.url === '/' ? '/index.html' : req.url);
    19.   let ext = path.extname(filePath);

    20.   // 默认 MIME 类型
    21.   let contentType = mimeTypes[ext] || 'application/octet-stream';

    22.   fs.readFile(filePath, (err, data) => {
    23.     if (err) {
    24.       res.writeHead(404, { 'Content-Type': 'text/plain' });
    25.       return res.end('404 Not Found');
    26.     }

    27.     res.writeHead(200, { 'Content-Type': contentType });
    28.     res.end(data);
    29.   });
    30. });

    31. server.listen(3000, () => {
    32.   console.log('Server running on http://localhost:3000');
    33. });
    复制代码
    三、使用第三方模块 mime

    如果你不想维护 MIME 映射表,可以使用官方推荐的 mime 模块。

    安装:
    1. npm install mime
    复制代码
    使用:
    1. const mime = require('mime');
    2. const filePath = 'public/style.css';
    3. const contentType = mime.getType(filePath); // 返回 'text/css'
    复制代码
    常用 MIME 类型一览

    扩展名MIME 类型
    1. .html
    复制代码
    1. text/html
    复制代码
    1. .css
    复制代码
    1. text/css
    复制代码
    1. .js
    复制代码
    1. application/javascript
    复制代码
    1. .json
    复制代码
    1. application/json
    复制代码
    1. .png
    复制代码
    1. image/png
    复制代码
    1. .jpg
    复制代码
    1. image/jpeg
    复制代码
    1. .gif
    复制代码
    1. image/gif
    复制代码
    1. .svg
    复制代码
    1. image/svg+xml
    复制代码
    1. .txt
    复制代码
    1. text/plain
    复制代码
    1. .pdf
    复制代码
    1. application/pdf
    复制代码

    四、注意事项


      1. Content-Type
      复制代码
      告诉浏览器怎么处理数据的关键;
    • MIME 类型必须与实际资源类型匹配,否则浏览器可能拒绝渲染或报错;
    • 若未设置
      1. Content-Type
      复制代码
      ,浏览器可能会猜测类型,但这不安全;
    • 返回 JSON 时推荐:
    1. res.writeHead(200, { 'Content-Type': 'application/json' });
    2. res.end(JSON.stringify({ message: 'hello' }));
    复制代码
    到此这篇关于在Node.js中设置响应的MIME类型的代码详解的文章就介绍到这了,更多相关Node.js设置MIME类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/javascript/339992ky9.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表