• nodeJS-02


    1.根据不同请求,做出不同响应:

     

     2.根据不同请求,读取不同文件,并响应给浏览器,浏览器进行解析

     

     

     

     当req.url==='/' 也就是只输入域名时候,重定向到首页

     

     3.读取静态文件

     

     

     我们发现,我们引入的样式并没有生效,解决办法:

    我们先把外层那个if(req.url.startsWith('/index') || req.url === '/') 去掉;并不一定全访问的是index开头的文件,如index.html中可能有引入的叫style.css的文件,这样就捕获不到了;所以我们在拼接请求读取文件路径时候,我们还要去的index.html中引入的css、img路径,所以要拼成req.url

     

     如下:启动服务样式和图片 就能加载出来了

     

     注意:如果在上面设置res.setHeader('content-type','text/html;charset=utf-8');会导致页面的css和图片加载不出来,因为样式和图片不是整个类型的。默认就如上面我们没有设置返回响应文件类型,浏览器在解析的时候会根据请求文件后缀名去解析,这样不保险,这样也会在控制台提示一个警告:

     

     所以还需要我们进行返回响应类型,下面来介绍:

    MIME类型:获取文件类型

    (1)是多用途Internet邮件扩展类型 是一种表示文档性质和格式的标准化方式

    (2)浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档;因此服务器将正确的MIME类型附加到响应对象的头部是非常重要的。

    mime是一个第三方模块,使用mime模块,需要先:

    安装:npm i mime
    引入:const mime = require('mime')

    两个方法:

    1)根据文件名,返回mime类型

    mime.getType('a.jpg')   // =>  'image/jpeg'

    2)根据mime类型,返回文件后缀名

    mime.getExtension('image/jpeg')  //=> 'jpg'

     

     

    这时再查看浏览器中看文件响应头中就有文件类型了。

     

  • 相关阅读:
    java中date日期格式的各种转换
    idea配置网络代理
    idea连接操作数据库
    数据库mysql之慢查询优化
    【统一异常处理】@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
    freemarker【FTL】常见语法大全
    MySQL高级知识(七)——索引面试题分析
    MySQL高级知识(八)——ORDER BY优化
    MySQL高级知识(六)——索引优化
    MySQL高级知识(四)——Explain
  • 原文地址:https://www.cnblogs.com/haoqiyouyu/p/14165516.html
Copyright © 2020-2023  润新知