哥伦布

node.js路由基础

复制代码
/*
 * @Description: 路由基础
 * @Version: 1.0
 * @Autor: Nanke_南柯
 * @Date: 2021-11-03 18:29:16
 * @LastEditors: Nanke_南柯
 * @LastEditTime: 2021-11-03 18:52:48
 */

const fs = require("fs")
require("http").createServer((req,res)=>{
    const urlStr = req.url
    console.log(urlStr);
    switch(urlStr){
        case '/':
            res.end('hello')
            break;
        case '/home':
            fs.readFile('./home.html',(err,content)=>{
                res.end(content)
            })
            break;
        case '/test.js':
            fs.readFile('./test.js',(err,content)=>{
                res.end(content)
            })
            break;
        case '/imgs.jpg':
            fs.readFile('./imgs.jpg',(err,content)=>{
                res.end(content)
            })
            break;
        default:
            res.end("page is 404")
    }
}).listen(5090,()=>{
    console.log('localhost:5090 Listen...');
})
复制代码

目录结构 文件内容

 

 

 

 

 

 

 hotnode index.js 访问localhost:5090成功响应

 

 

 

 

 

 可以发现没有响应头 就node没配置自动解析,而且代码冗余

 

 所以我们需要一个插件 npm i mime -S 去动态识别和设置响应头然后二次封装

复制代码
/*
 * @Description: 路由基础-简单封装-mime模块响应或设置Node.js的Content-Type头
 * @Version: 1.0
 * @Autor: Nanke_南柯
 * @Date: 2021-11-03 18:54:32
 * @LastEditors: Nanke_南柯
 * @LastEditTime: 2021-11-03 19:56:56
 */
//npm i mime -S mime模块响应或设置Node.js的Content-Type头

// 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类型。
const fs = require("fs")
const mime = require("mime")
require("http").createServer((req,res)=>{
    const urlStr = req.url
    const type = mime.getType(urlStr.split('.')[1])
    console.log(type);
    res.writeHead(200,{
        'content-type':type
    })
    const file = fs.readFileSync(`.${urlStr}`)
    res.end(file)
}).listen(5093,()=>{
    console.log('localhost:5093 Listen...');
})
复制代码

可以看到 全部自动获取动态加上去了

 

 

 

posted @   南柯Dream丶  阅读(79)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2020-11-03 iframe自适应内容高度
点击右上角即可分享
微信分享提示