目录
(1)get参数是放在浏览器的地址栏中发送的(即请求参数和url绑在一起)
1、框架:半成品,开发人员按照框架的规范(要求)进行不同配置就可以实现不同的需求
(1)npm init -y --生成package.json文件
一、HTTP请求和响应的处理
1、get请求参数的处理
(1)get参数是放在浏览器的地址栏中发送的(即请求参数和url绑在一起)
(2)get参数的获取方式
a、通过请求对象(req)的url属性获取客户端请求的URL(req.url)
b、使用Node的内置模块url对请求地址进行解析,获取请求参数
let { query,pathname } = url.parse(clientURL,true)
const url = require('url')
const http = require('http')
const app = http.createServer()
app.on('request',(req,res)=>{
//1.获取客户端请求的url
let clientURL = req.url
console.log(clientURL);
//2.解析url
let{ query,pathname } = url.parse(clientURL,true)
console.log('请求参数',query);
console.log('请求路径',pathname);
res.writeHead(200,{
'content-type':'text/html;charset=utf8'
})
//3.对请求进行判断
if(pathname=='index' || pathname=='/'){
res.end('<h1>hello '+query.username+'</h1>')
}else if(pathname == '/list'){
res.end('<h1>list page</h1>')
}else{
res.end('<p>not found</p>')
}
})
app.listen(3000)
console.log('服务器已启动,运行在3000端口上...');
2、post请求参数的处理
(1)post请求参数放在请求体中,而不是放在url中
(2)post参数的获取方式
a、导入Node的内置模块querystring,将post请求参数转换成对象
b、给请求对象(req)注册'data'事件,用于监听参数的传输,将传输的参数读取出来
c、给请求对象(req)注册'end'事件,用于监听参数传输完毕,该事件被触发表明参数传递完成就可以对参数进行处理
强调:关于querystring被弃用的解决办法
使用querystringify模块替代querystring模块。因为querystringify模块不是Node的内置模块,需要安装 npm install querystringify -g
3、路由
(1)路由是指客户端请求地址与服务器端程序代码的对应关系。
用户在浏览器地址栏中输入不同的请求地址,服务器端会为客户端响应不同的内容。
(2)静态资源的访问
a、静态资源:是指客户端向服务器端请求的资源,服务器端不需要处理,可以直接响应给客户端的资源。
b、静态资源的类型:CSS、JavaScript、image文件,