一、准备工作:
1.本地安装redis库,我用的是菜鸟教程–提供的git连接上的 ‘Redis-x64-5.0.10.zip’版本;
2.安装好redis没问题后,跑起来别关cmd窗口;
3.创建程序如下:
备注:session.js和redis.js放在同一个文件夹config下管理的;
创建express服务器: app.js文件
// 引入创建模块
const express = require('express')
const http = require('http')
const session = require('./config/session')
// 辅助模块
const path = require('path')
const badyParser = require('body-parser')
// 使用redis
// const redis = require('./config/redis')
// 创建服务器
const app = express()
const server = http.createServer(app)
// 解析
app.use(express.static(path.join(__dirname, '../views/dist')))
app.use(badyParser.json({ limit: '1024kb' }))
app.use(badyParser.urlencoded({ extended: true, limit: '1024kb' }))
// session
app.use(session)
// 后端路由配置
// app.use('/server', require('./routers'))
app.use('/login', (req, res) => {
req.session.userinfo = '唐三'
res.send('登录成功')
})
app.use('/record', (req, res) => {
res.send(`${req.session.userinfo} 欢迎回来!!`)
})
app.use('/destory', (req, res) => {
console.log(1, req.session.userinfo)
req.session.destroy(err => {
console.log(err)
res.send('退出成功')
})
})
// 错误处理中间件
app.use('*', (err, req, res, next) => {
res.status(500).send('服务器正忙')
})
// 跑起来
server.listen(8686, () => {
console.log('Server is running at http://localhost:8686');
})
创建session.js
const session = require('express-session')
const uid = require('uid-safe')
const RedisStore = require('connect-redis')(session)
const client = require('./redis')
module.exports = session({
genid: req => uid.sync(18) + req.body.name,
secret: 'zacahry',
resave: false,
saveUninitialized: false,
rolling: true,
cookie: {
secure: false,
maxAge: 5 * 60 * 1000,
httpOnly: true,
sameSite: true
},
store: new RedisStore({
client: client,
host: "127.0.0.1",
port: 6379
})
})
创建redis.js文件:
const redis = require("redis")
const client = redis.createClient({
password: '在你准备的本地redis.conf中,requirepass 的值,不设置也行'
})
client.on('connect', _ => {
console.log('redis连接成功!')
})
client.on("error", function (error) {
console.error(error);
})
module.exports = client
二、测试步骤
1.redis库和程序跑起来后,在浏览器上输入
http://localhost:8686/login
结果:
访问:http://localhost:8686/record
结果:
访问:http://localhost:8686/destory
结果:
测试说明及结果验证说明:当前cookie设置有限期为5分钟,login以后==五分钟内通过record可以正常获取到‘唐三’欢迎回来!!‘ 5分钟后由于cookie失效的问题或者5分钟内执行过destory操作,页面反馈变成“undefined 欢迎回来!!” 说明此事cookie已经失效,测试成功!!
版权声明:技术乐在分享,如转载或使用本文内容,请附上本文链接。