继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第17天 新版 Node.js+Express+Koa2 开发Web Server博客 10-8

暮雩
关注TA
已关注
手记 65
粉丝 9
获赞 5

课程名称: 新版 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;

课程收获:

  1. 了解如何在 express 中处理session
    图片描述
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP