继续Path模块
path.join
path.join([path1], [path2], […])
将多个参数值字符串结合成一个路径字符串
path.resolve
path.resolve([path1], [path2], […])
把一个路径或路径片段的序列解析为一个绝对路径,类似cd命令
join和resolve的对比
var path = require("path");
path.join('/a', '/b') // Outputs '\a\b'
path.resolve('/a', '/b') // Outputs 'H:\b'
path.normalize
于将非标准路径的字符串转化成标准路径字符串
var path = require("path");
var normalize = path.normalize("../a//b//d//..//c//d/")
console.log(normalize);//..\a\b\c\d
querystring模块
querystring.parse
querystring.parse(str[, sep[, eq[, options]]])
是将一个字符串反序列化为一个对象
str 指需要反序列化的字符串,sep(可选)指用于分割 str 这个字符串的字符或字符串,默认值为 “&”;eq(可选)指用于划分键和值的字符或字符串,默认值为 “=”;options(可选)该参数是一个对象,里面可设置 maxKeys 属性:传入一个 number 类型,指定解析键值对的最大值,默认值为 1000,如果设置为 0 时,则取消解析的数量限制
var querystring = require("querystring");
var newObj=querystring.parse("site=QQ&url=http://www.qq.com/");
var queryObj=querystring.parse("site=QQ#url=http://www.qq.com/
#age=5","#",null,{maxKeys:2});
querystring.stringify
querystring.stringify(obj[, sep[, eq[, options]]])
将一个对象序列化成一个字符串
数 obj 指需要序列化的对象;sep(可选)用于连接键值对的字符或字符串,默认值为 “&”;eq(可选)用于连接键和值的字符或字符串,默认值为 “=”;
var querystring = require("querystring");
var str = querystring.stringify({name:"baidu",sex:"man"});
console.log(str); //name=baidu&sex=man
console.log(queryStr); //name*baidu|sex*man
querystring.escape
使传入的字符串进行编码
var querystring = require("querystring");
var str = querystring.escape("name= 百度 ");
console.log(str);
querystring.unescape
将含有 % 的字符串进行解码
var querystring = require("querystring");
var str = querystring.unescape("name%3D%E4%BC%98%E5%B0%B1%E4%B8%9A");
console.log(str);
创建HTTP服务
//创建一个http服务(就可以通过网址+端口号来访问了)
//1.引入http模块
const http = require('http')
const fs = require('fs')
//2.通过http对象创建Server
http.createServer(function(req,res){
console.log(req.url);
let data=null;
if(req.url=='/'){
//设置响应头,类型为text/html,可以解析html标签
res.writeHead(200,"ok",{'Content-Type':'text/html;charset=utf-8'})
//文件读取:网页
data = fs.readFileSync('./index.html','utf-8')
//将网页内容输出给浏览器
}else if(req.url.endsWith('.css')){
//设置响应头,类型为text/html,可以解析html标签
res.writeHead(200,"ok",{'Content-Type':'text/css;charset=utf-8'})
data = fs.readFileSync('.'+req.url,'utf-8');// ./public.css
}else if(req.url.endsWith('.js')){
res.writeHead(200,"ok",{'Content-Type':'text/javascript;charset=utf-8'})
data = fs.readFileSync('.'+req.url,'utf-8');// ./public.css
}else{
res.writeHead(200,"ok",{'Content-Type':'image/x-icon'})
data = fs.readFileSync('.'+req.url);// 图片
}
res.write(data);
res.end();//关闭[如果不关闭,页面就会一直加载中,一直等待]
}).listen(8888)
console.log('server startup on 8888')
//3.监听端口:8888
//4.访问地址:http://localhost:8888/