Node.js --- url模块 和 querystring模块 以及 mime模块

引入

         在node.js环境中 有两个全局变量:   __dirname 和  __filename

        1. 他们保存的是字符串

         2.  __dirname 当前js文件所在目录:绝对路径

             __filename 当前js文件的目录:绝对路径

网址的组成

网址是由: 协议://ip:port/pathname?querystring#hash  组成的

        例如:https://www.baidu.com/?tn=02003390_42_hao_pg

网址可以通过parse() 解析为对象,其中有两个参数:pathname和 querystring

url模块

就是网址解析之后的pathname属性值;

可以把url网址解析为一个对象

var fs = require("fs")
var http = require("http")
var url = require("url")

var app = http.createServer((req,res) => {
    console.log(req.url)
    var path = url.parse(req.url).pathname
    fs.readFile(__dirname + path, (err, data) => {
		res.end(data)
    })
})
app.listen(8081)

假设:上面你输入的网址是:http://123.123.1.23:8081/index.html?count=12&pwd=123

        那么你得到的pathname值就是 /index.html

querystring模块

        就是网址解析之后的querystring属性值;

        可以把querystring参数解析为一个对象

var querystring = require("querystring")
var obj = querystring.parse("username=xiaozhang&count=20&maxid=123456")
console.log(obj);

 也可以将对象转为querystring字符串:

var querystring = require("querystring")
var str2=querystring.stringify({name:"xiaozhang",age:20})
console.log(str2);

mime模块

可以通过mime.getType()来判断输入网址的文件的类型,从而来根据网址数据设置类型:

也可以用mime.getExtension() 来获取你输入的类型:

但是mime是外部资源模块,需要自行下载,在小黑窗输入  npm i mime 来下载安装此模块

var mime=require("mime")
var re=mime.getExtension("text/css")
console.log(re)
var re2=mime.getType("htpp://123.123.12.3:8080/css/index.html")
console.log(re2)

 比如下面的实例:

var mime=require("mime")
var url=require("url")
var querystring=require("querystring")
var http=require("http")
var fs=require("fs")

var app = http.createServer((req,res) => {
    let urlobj = url.parse(req.url)
    let pathname = urlobj.pathname
    let path = __dirname + pathname
    fs.readFile(path,(err,data) => {
        if (!err) {
            // 获取当前访问网址的文件类型
            let type1 = mime.getType(path)
            res.setHeader("conten-Type",type1)
            res.end(data)
        }else {
            res.end("404")
        }
    })
})
app.listen(8081)

无论你设置什么类型的网址,它都能根据你输入的网址类型来给你设置相对应的头部。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z_小张同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值