当前位置: 首页 > news >正文

nodejs——在Express中使用Session认证

首先执行npm install express-session命令来安装express-session中间件

然后配置express-session中间件

向session中存数据

从session中取数据

清空session

以下是完整代码:

//导入session中间件
var session = require('express-session')
const express = require('express');
const app = express();
app.use(express.json()); // 解析JSON格式的请求体
app.use(express.urlencoded({ extended: false })); // 解析表单格式的请求体
//配置session中间件
app.use(session({secret: 'keyboard cat',//secret属性的值可以为任意字符串resave: false,//固定写法saveUninitialized: true//固定写法
}))
//向session中存数据
app.post('/api/login',(req,res)=>{if(req.body.username !== 'admin' || req.body.password !== '000000'){return res.send({status:1, msg:'登录失败'})}req.session.user = req.body;req.session.islogin = true;res.send({status:0, msg:'登录成功'})
})
//向session中取数据
app.get('/api/username',(req,res)=>{if(!req.session.islogin){return res.send({status:1, msg:'fail'})}res.send({status:0,msg:'success',username:req.session.user.username})
})
//退出登录的接口
app.post('/api/logout',(req,res)=>{req.session.destroy()res.send({status:0,msg:'退出登录成功'})
})
app.listen(3000,()=>{console.log('3000端口服务器已启动');})

为了解析JSON格式的请求体和解析表单格式的请求体我们需要编写以下代码

如果不添加以上代码我们使用Apifox进行测试时会在终端报以下错误

TypeError: Cannot read properties of undefined (reading 'username') at E:\frontStudy\html\nodejs学习\node26\node26.js:13:17 at Layer.handleRequest (E:\frontStudy\html\nodejs学习\node26\node_modules\router\lib\layer.js:152:17) at next (E:\frontStudy\html\nodejs学习\node26\node_modules\router\lib\route.js:157:13) at Route.dispatch (E:\frontStudy\html\nodejs学习\node26\node_modules\router\lib\route.js:117:3) at handle (E:\frontStudy\html\nodejs学习\node26\node_modules\router\index.js:435:11) at Layer.handleRequest (E:\frontStudy\html\nodejs学习\node26\node_modules\router\lib\layer.js:152:17) at E:\frontStudy\html\nodejs学习\node26\node_modules\router\index.js:295:15 at processParams (E:\frontStudy\html\nodejs学习\node26\node_modules\router\index.js:582:12) at next (E:\frontStudy\html\nodejs学习\node26\node_modules\router\index.js:291:5) at Immediate._onImmediate (E:\frontStudy\html\nodejs学习\node26\node_modules\express-session\index.js:514:7)

我们使用Apifox进行测试以下是测试成功的截图(注意在使用Apifox测试之前要先在终端运行代码)

http://www.dtcms.com/a/308958.html

相关文章:

  • 基于 AXI-Lite 实现可扩展的硬件函数 RPC 框架(附完整源码)
  • graph attention network
  • Sklearn 机器学习 文本数据 计数向量化加入停用词
  • Spring Boot 项目问题:Web server failed to start. Port 5566 was already in use.
  • Linux应用开发基础知识——Makefile初级教程(九)
  • 订单识别与发票识别结合的技术实现方案
  • 最新PS 2025安装包下载与安装教程(Adobe Photoshop 2025 )
  • Java客户端连接Redis
  • langchain--2--invoke、batch、stream、ainvoke、abatch、astream
  • 51c自动驾驶~合集12
  • Python脚本批量将usdz文件转为glb文件
  • 智能体通信协议
  • C++(模板,智能指针)
  • 什么是数据集成?和数据融合有什么区别?
  • Video_1920×1080i 1920_1080p
  • 7月31日作业
  • 模型训练速度慢排查
  • C++法则22:运算符 ::* 和 ->* 和 ::* 是独特的整体运算符,是不可分的。
  • 从关键词到用户意图:2025年Google Trends的语义化SEO实战手册
  • 化学结构式解读指南:从基础认知到InDraw智能识别
  • 大小端字节序详解
  • LCGL使用简介
  • Kubernetes架构概览
  • 2025虚幻5光明之魂开发思考1——借鉴软件工程
  • Dify 从入门到精通(第 6/100 篇):配置你的第一个 LLM:OpenAI、Claude 和 Ollama
  • kafka使用kraft
  • QT 动态属性和静态属性
  • Spring框架与AutoCAD结合应用
  • 2025年6月人工智能领域研究热点扫描|人工智能顶级期刊TPAMI
  • vue3 v-html绑定数据,点击sub实现popover效果