zlib模块
zlib经常用于压缩文件大小,代码如下:
//zlib.js
const http = require('http')
const fs = require('fs')
const zlib = require('zlib')
const gzip = zlib.createGzip()
http.createServer((req, res) => {
//res除了说是返回给浏览器端的参数,也是可写流
const readStream = fs.createReadStream('./index.js')
res.writeHead(200, {
"Content-Type": "application/x-javascript;charset=utf-8","Content-Encoding":"gzip" })
//pipe(gzip)是压缩处理
readStream.pipe(gzip).pipe(res)
}).listen(3000, () => {
console.log("服务器开启了!")
})
//我是给zlib.js测试用的js 随便乱写的js
const url = require('url')
const urlObject = {
protocol: 'https:',
slashes: true,
auth: null,
host: 'www.baidu.com:443',
port: '443',
hostname: 'www.baidu.com',
hash: '#tag=110',
search: '?id=8&name=mouse',
query: {
id: '8', name: 'mouse' },
pathname: '/ad/index.html',
path: '/ad/index.html?id=8&name=mouse'
}
const parsedObj = url.format(urlObject)
console.log(parsedObj)
const url = require('url')
var a = url.resolve('/one/two/three', 'four')
var b = url.resolve('http://example.com/', '/one')
var c = url.resolve('http://example.com/one', '/two')
var d = url.resolve('http://example.com/one/12/34', '/56')
var e = url.resolve('http://example.com/one/12/34', '56')
// 需要注意的是, /one/two/three这种纯路径注意加/和不加/是有区别的,不加/会用后面的一个把前面的一个进行替换,加/就会进行相连
// 如果是http://example.com/这种域名形式的,则会后面的替换前面的
console.log(a)
console.log(b)
console.log(c)
console.log(d)
console.log(e)
运行后浏览器输入localhost:3000可以看到效果,而且我们看到文件大小也被压缩了: