express
创建一个服务
1 | const express = require('express') |
res.send():原生res.write()只支持buffer或者原生字符串,而express的send是什么都能发
next:执行下一个请求
//出现get请求后根据url走get
get(‘url’,fn)
post(‘url’,fn)
use(‘url’,fn)
//出现get请求后直接走get,use是任何方法任何地址都可以
get(fn)
post(fn)
use(fn)
也可以用中间件
//中间件,会找static里面的文件,用的时候放在最后面,避免覆盖其他接口。
server.use(express.static(‘./static/‘))
数据
GET req.query
POST 需要用 body-parser 中间件获取数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15//安装中间件
npm i body-parser -D
//引入中间件
const body = require('body-parser')
//添加路由之前,先添加中间件,先解析数据,完了再执行路由
server.use(body.urlencoded(
extended:false //是否开启扩展模式,没啥用,还会增加性能负担
))
//用法
server.post('/reg',(req,res)=>{
//用了中间件后,req会多一个body属性,这是用了中间件后它加上去的
console.log(req.body)
})
上传文件中间件
命令: npm i multer -D
1 | const express = require('express'); |
操作cookie、操作session
cookie
安装中间件: npm i cookie-parser -D
1 | const express = require('express') |
session
安装中间件:cookie-session
cookie-session是天然强制加密的
session可以保存在数据库里,也可以保存在redis里,文件和内存也可以。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23const express = require('express')
const cookieSession = require('cookie-session')
let server = express()
server.listen(8080)
server.use(cookieSession({
keys:['asoidjaodbxz','asdoiadsnowneoiwefbefw','diaonasodndubzxcoiqwe'] , //循环秘钥,如果只有一个秘钥很有可能被猜出来
maxAge:20*60*1000 //设置有效期,最好不要太长,20分钟可以
}))
server.get('/a',(req,res)=>{
console.log(req.session)
//种一个cookie
if(req.session['view']){
req.session['view']=1
}else{
req.session['view']++
}
req.session['amount']=998 //这边设置的session前端是看不到的,相对要安全一些
res.send(`欢迎你第${req.session['view']}次到访本站,你的余额是:${req.session['amount']}`)
})