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

Node.js Session 原理简单介绍 + 示例代码

目录

✅ Session 原理简要说明

🧩 示例项目 - 使用 Node.js + Express 实现简单 Session 登录

📁 文件结构

🔹 server.js (JavaScript)

🔸 index.html (HTML)

▶️ 程序运行步骤

✅ 程序运行效果

🎯 总结


在 Web 应用中,我们经常需要“记住”用户,比如登录状态。这种“记住”就是会话管理(Session)

✅ Session 原理简要说明

  • Session 是服务器端的机制,用来保存用户的数据(比如用户名、权限等)。

  • 每个 Session 会绑定一个唯一的 Session ID。

  • 服务器会把这个 Session ID 发送给客户端(浏览器),一般通过 Cookie 存储。

  • 浏览器下次请求时会自动带上这个 Session ID,服务器就能识别出这个用户了。


🧩 示例项目 - 使用 Node.js + Express 实现简单 Session 登录

我们来写一个简单的登录系统,登录成功后记住用户信息,通过 Session 实现。

📁 文件结构

session-demo/
│
├── server.js         ← Node.js 主程序 (JavaScript)
└── index.html        ← 客户端页面 (HTML)

🔹 server.js (JavaScript)

// server.js
const express = require('express');
const session = require('express-session');
const path = require('path');const app = express();// 设置 session 中间件
app.use(session({secret: 'keyboard cat',         // 用于加密 Session ID 的字符串resave: false,saveUninitialized: true,cookie: { maxAge: 60000 }       // Session 有效时间:1分钟
}));app.use(express.urlencoded({ extended: true }));
app.use(express.static(__dirname));// 登录接口
app.post('/login', (req, res) => {const { username, password } = req.body;if (username === 'admin' && password === '123456') {req.session.user = username;res.send('登录成功!欢迎你,' + username);} else {res.send('用户名或密码错误');}
});// 访问首页时检查是否已登录
app.get('/welcome', (req, res) => {if (req.session.user) {res.send('你已登录,欢迎回来,' + req.session.user);} else {res.send('你还没有登录,请先登录');}
});// 退出登录
app.get('/logout', (req, res) => {req.session.destroy();res.send('你已退出登录');
});// 启动服务器
app.listen(3000, () => {console.log('服务器已启动:http://localhost:3000');
});

🔸 index.html (HTML)

<!-- index.html -->
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>Session 登录示例</title>
</head>
<body><h2>登录页面</h2><form method="POST" action="/login">用户名:<input type="text" name="username" /><br>密码:<input type="password" name="password" /><br><button type="submit">登录</button></form><br><a href="/welcome">查看登录状态</a><br><a href="/logout">退出登录</a>
</body>
</html>

▶️ 程序运行步骤

  1. 安装依赖:

npm install express express-session
  1. 启动服务器:

node server.js
  1. 打开浏览器访问:

http://localhost:3000

✅ 程序运行效果

  • 打开页面,输入 admin / 123456 登录。

  • 登录后服务器会设置 Session。

  • 点击「查看登录状态」会显示欢迎信息。

  • 点击「退出登录」后,Session 会被销毁,再次访问就会提示未登录。


🎯 总结

这个例子通过 express-session 管理 Session,帮助你理解:

  • 如何保存登录状态

  • Session 是服务器存储用户信息,客户端只保存一个标识(Session ID)

 

相关文章:

  • Sui 的工具生态简化了游戏开发者的 Web3 集成流程
  • 技术与情感交织的一生 (六)
  • My Diary Pro:记录生活,珍藏回忆
  • Android NDK 编译 so 文件 抹除导出符号 反逆向
  • 如何争取高层对项目的支持
  • Docker安装 (centos)
  • GitHub 封禁中国 IP:影响、原因及应对
  • 浏览器自动化检测对抗:修改navigator.webdriver属性的底层实现
  • python的strip()函数用法; 字符串切片操作
  • 解锁动态规划的奥秘:从零到精通的创新思维解析(8)
  • 深入理解UML动态图:系统行为建模全景指南
  • CExercise_13_1排序算法_3快速排序算法,包括单向分区以及双向分区
  • Redis之缓存过期淘汰策略
  • 应急响应篇钓鱼攻击邮件与文件EML还原蠕虫分析线索定性处置封锁
  • 【Linux网络与网络编程】10.网络层协议IP
  • 神经网络复习
  • STM32并口屏应用实例:点亮你的显示世界之程序篇
  • Python在去中心化物联网中的应用:数据安全、智能合约与边缘计算的融合
  • AOSP Android14 Launcher3——底部任务栏Taskbar详解
  • 【unity游戏开发入门到精通——UGUI】EventSystem事件系统组件和Input System Ul Input Module输入模块组件
  • 中非民间对话在赞比亚举行
  • 105岁八路军老战士、抗美援朝老战士谭克煜逝世
  • 欧盟委员会计划对950亿欧元美国进口产品采取反制措施
  • 国家发改委:目前有的核电项目民间资本参股比例已经达到20%
  • 九部门:对机动车特别是货车排放问题的监管将更加严格
  • 美联储主席:关税“远超预期”,美联储实现目标的进程或被推迟至明年