引入express
const express = require('express')
const bodyParser = require('body-parser')
const session = require('express-session')
创建服务
const app = express()
const port = 8086
app.listen(port, () => {
console.log(`server success on ${port}`)
})
静态资源文件的处理
app.use(express.static('./static'))
middleware中间件
- 中间件的本质就是一个函数.
- 执行任何代码。
- 对请求和响应对象进行更改。
- 结束请求/响应循环。
- 调用堆栈中的下一个中间件函数。
- 中间件的执行顺序是按照书写的先后顺序执行的
app.use('/user', (req, res, next) => {
//请求的path地址是以'/user' 开头的,例如'/user' ,'/user/add'
next()
})
app.use((req, res, next) => {
//相当于路劲匹配为* 即所有的请求都会走这个中间件
next()
})
body-parser中间件
- bodyParser
- 如果是post/put请求
- bodyParser.json() 如果传递的是json格式的字符串,会把请求主体传递的信息转为json格式的对象
- bodyParser.urlencoded() 如果传递的是urlencoded格式的字符串(即user=shulu&password=123形式),会把它转为对象键值对的方式
- 经这个中间件的这两个方法处理后,会把转化后的结果挂载到req.body上
app.use(bodyParser.json())
app.use(bodyParser.urlencoded())
api处理
req的常用属性 不是原生的
req.params 请求的路径参数信息
req.path 请求的路劲名称
req.query 请求的问号参数的内容(get请求都是这样传递的信息)
req.body 请求的方式是post时,我们使用body-parser中间件处理后,会把请求主体中的内容存放到body属性中
req.session 我们基于express-session中间件处理后,会把session操作放到这个属性上
req.cookies 我们基于cookie-parser中间件处理后,会把cookie的操作放到这个属性上
req的常用方法 不是原生的
req.get() 获取指定的请求头信息
res的常用方法 不是原生的
res.cookie(name, value, [opation]) 设置一些cookie信息,通过响应头set-cookie返回给客户端,客户端浏览器把cookie信息种到本地
res.json([body]) 向客户端返回json格式的字符串,但是允许我们写json对象,该方法会自动转为json,(执行该方法后会自动结束响应res.end)
res.redirect([status,] path) 响应是重定向的(默认状态吗302)
res.type(type) 设置相应内容的mime类型
res.status() 设置响应的HTTP状态码
res.sendFile(path [, options] [, fn]) 发送文件
res.send() 想发送啥就发送啥
get请求处理
app.get('/getUser', (req, res) => {
res.send({
message: 'ok'
})
})
post请求处理
app.post('/home', (req, res) => {
res.send({
message: 'hello'
})
})