1.路由:根据请求方式method
2.路由:根据请求路径pathname
3.路由:请求报文判断具体键值对
4.请求参数:GET
5.请求参数:POST
路由:根据浏览器地址中文件地址的不同,显示不同内容
一个地址只能写一个路由,接收完成之后下方的路由不执行了,解决办法为中间件
没有写路由的时候会提示报错,用express框架会给提示
const http = require("http")
const app = http.creatServer()
//路由概念,根据请求方式不同/请求文件不同,返回对应的值
app.on(request, (req, res) => {
let method = req.method.tolowerCase() //获取请求方式,并且转化为小写
let { pathname } = url.parse(req.url).pathname //获取请求路径,只要路径中的文件名称
if (method == "get") {
if (pathname == "/index") {
res.end("首页")
} else if (pathname == "/list") {
res.end("列表页")
} else {
res.end("出问题了")
}
} else if (method == "post") {
}
})
app.listen(3000)
//获取请求报文信息
consolu.log(req.headers)//获取请求报文信息,每个文件一个信息
consolu.log(req.headers["具体某一项的具体信息键值对"])
请求参数:请求时获取参数
GET:获取参数:url对象的属性
//GET请求时,获取参数
const url = require("url") //处理url地址
url.parse(req.url, true)
//1.parse:解析;
//2.解析后url.parse(req.url, true)是对象,对象内存储search,query属性,存储参数
//3.true:将query属性转化为对象格式
var params = url.parse(req.url, true).query
consolu.log(params.name)
POST:获取参数:字符串拼接方式
//POST请求时,传递参数
客户端
< form method = "post" action = "服务器地址" >
//name指定了input,服务器通过name获取到input的值
<input type="submit" value="" name="">
/form >
服务端
const querystring =require("querystring") //引入将字符串转为对象格式的方法
app.on(request, (req, res) => {
let postParams = ""; //设置空字符串,存储传递进来的键值对
req.on("data", (params) => { //请求参数开始传递时,data事件,当前传递过来的参数params
postParams += params
})
req.on("end", () => { //请求参数结束传递时,end事件
console.log(postParams) //请求参数全部传递完成后
querystring.parse(postParams) //将字符串转化为对象格式
})
res.end(postParams)