超文本传输协议,是客户端和WEB服务器之间的通信协议
WEB服务器:为前端提供所需要的资源
1.通用头信息
Request URL:请求的网址,表示要请求的服务器端资源
Request Method:请求的方式,对资源的操作方式,例如:get、post
Status Code:响应的状态码
1**:接收到了请求,还没有响应
2**:成功的响应
3**:响应的重定向
4**:客户端错误
5**:服务器端错误
2.响应头信息(response)
Location:要跳转的网址,配合着状态码3**使用
Content-Type:响应的内容类型 解决中文乱码 text/html;charset=utf-8
3.请求头信息(request)
使用http模块就可以创建WEB服务器
const http=require(‘http’) //引入http模块
const app=http.createServer() //创建WEB服务器
app.listen(3000) //设置端口
//服务器通过事件监听浏览器请求
app.on(‘request’, (req, res)=>{
req 请求的对象
req.url 获取请求的资源 格式 ‘/login’
req.method 获取请求的方式 GET…
res 响应的对象
res.statusCode=状态码 设置响应的状态码,默认是200
res.setHeader() 设置响应的头信息
res.write() 设置响应的内容
res.end() 结束并发送响应
})
框架:是一整套解决方案,简化了已有的功能,添加了新的功能,为项目开发准备的。
Java -> Spring
python ->django
php -> thinkphp
Node.js -> express/koa/egg…
JS -> Vue/React
基于Node.js平台,快速、开放、极简的WEB开发框架
网址:www.expressjs.com.cn
属于是第三方模块,需要先去下载安装
npm install express
1.创建WEB服务器
const express=require(‘express’) //引入express模块
const app=express() //创建WEB服务器
app.listen(3000) //设置端口
2.路由
路由用于监听特定的请求;包含请求的网址、请求的方法、回调函数三部分。
响应的对象res
res.send() 设置响应的内容并发送
res.redirect() 设置响应的重定向
res.sendFile() 设置响应的文件并发送,文件必须使用绝对路径 __dirname
请求的对象 req
req.url 获取请求的网址
req.method 获取请求的方式
req.query 获取get传递的参数
3.路由传递参数
传参方式 | 格式 | 路由中获取 |
---|---|---|
get传递 | http://127.0.0.1:3000/mysearch?kw=小米&a=1 | req.query{ kw:‘dell’ } |
– | – | – |
post传递 | http://127.0.0.1:3000/mysearch/dell | req.params 需要设置参数名 { kw:‘dell’ } |
– | – | – |
post传递 | 网址中不可见 http://127.0.0.1:3000/mysearch | 需要中间插件转对象 |
绝对路径:D:/XX/XXXX/1.html
相对路径:1.html
获取绝对路径
console.log(__dirname)
req 请求对象
req.url 获取请求的URL
req.method 获取请求的方法
req.query 获取get传递的参数
req.params 获取params传递的参数
4、post传参
需要使用中间插件将post传参转为对象
app.use(express.urlencoded({ extended:true //告诉内部是否使用第三方模块转为对象 }))
在路由中使用req.body即可获取对象
添加插件,可以将所有post传递的参数转为对象
urlencoded 网址编码
将转为对象放入req.body
告诉内部如何转对象
app.use(express.urlencoded({
extended:true //是否使用第三方模块转对象 如果为false 则使用官方提供的模块
}))
在路由中使用req.body即可获取对象