课程名称: 新版 Node.js+Express+Koa2 开发Web Server博客
课程章节: 10-8 express 处理session
课程讲师: 双越
课程内容:
登录
- 使用 express-session 和 connect-redis 插件,简单方便
- req.session 保存登录信息,登录校验做成 express 中间件
代码演示
安装 express-session
npm i express-session -S
使用express-session
// app.js
const createError = require("http-errors");
const express = require("express");
const cookieParser = require("cookie-parser");
const logger = require("morgan");
//
const session = require("express-session");
// 引入博客路由
const blogRouter = require("./routes/blog");
// 引入用户路由
const userRouter = require("./routes/user");
// 主程序
const app = express();
// 中间件
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
// 解析session
app.use(
session({
secret: "WJiol#23123_", //密匙
cookie: {
path: "/", // 默认配置
httpOnly: true, // 默认配置
maxAge: 24 * 60 * 60 * 1000, // 过期时间24小时
},
})
);
// 路由
app.use("/api/blog", blogRouter);
app.use("/api/user", userRouter);
module.exports = app;
测试是否有效
// router/user.js
const express = require("express");
const router = express.Router();
router.get("/session-test", (req, res, next) => {
const session = req.session;
if (session.viewNum == null) {
// 计数
session.viewNum = 0;
}
session.viewNum++;
res.json({
viewNum: session.viewNum,
});
});
module.exports = router;
课程收获:
- 了解如何在 express 中处理session