express-session的简单使用说明
来源:互联网 发布:java web 许令波 编辑:程序博客网 时间:2024/05/21 09:42
为什么需要用session?
我们知道Internet 通过协议分为stateful和stateless两类,而http是stateless协议,客户端发送请求到服务端建立一个连接,请求得到响应后连接即中断,服务器端不会记录状态,因此服务器端想要确定是哪个客户端提交过来的请求,就必须要借助一些东西去完成:session和cookies。
express-session
session存在于服务器端,需要cookies的协议协助才能完成,服务器端和客户端通过session id来建立联系。
express中可以用中间件来使用session,expres-session可以存在内存中,也可以存在mongodb、redis等中。想了解更多中间件可以:https://github.com/senchalabs/connect#middleware
使用:
安装: npm install express-session
示例:使用session来判断用户是否已经登录,如果没有登录,则跳转到登录页
//app.jsvar express = require('express');var path = require('path');var favicon = require('static-favicon');var logger = require('morgan');var cookieParser = require('cookie-parser');var bodyParser = require('body-parser');var session = require('express-session');... //这里传入了一个密钥加session idapp.use(cookieParser('Wilson'));//使用就靠这个中间件app.use(session({ secret: 'wilson'}));...
//user.jsvar express = require('express');var router = express.Router();var options = require('../config/database-default')var db = require('../config/db.js');//请求作者页router.route('/user/index').get(function(req,res,next){ console.log(req.session.user); if(req.session.user){ res.render('user',{title:'作者管理'}); }else{ req.session.originalUrl = req.originalUrl?req.originalUrl:null;//记录用户的请求路径 console.log(req.session.originalUrl); res.redirect('/login'); }})
//login.jsvar express = require('express');var router = express.Router();//后台管理系统登录router.route('/login').get(function(req,res,next){ if(req.session.islogin){ res.locals.islogin = req.session.islogin; } if(req.cookies.islogin){ req.session.islogin = req.cookies.islogin; } console.log('this is login') res.render('login',{title:'登录'});}).post(function(req,res){ console.log(req.session.originalUrl); //req.session.user = user;//将用户信息写入到session if(req.session.originalUrl){ var redirectUrl = req.session.originalUrl; req.session.originalUrl = null; }else{//不存在原始请求路径,则将用户重定向到首页路劲 var redirectUrl = '/index'; }; console.log('yes'); req.session.user = 'zhangsan'; res.redirect(redirectUrl);});module.exports = router;
清除session
req.session.destroy();
0 0
- express-session的简单使用说明
- express-session的设置
- nodejs express的session验证
- express-session遇到session失效的问题
- express的简单安装
- Jsp中session()的使用说明
- Express express-session
- express-session
- express-session
- Express框架之express-session的插件的攻坚战
- Hash_table 的简单使用说明
- log4j的简单使用说明
- 简单的git使用说明
- htmlparser的简单使用说明
- 报表的简单使用说明
- EclipseEclipse的简单使用说明-
- AFNetwork 简单的使用说明
- hive的简单使用说明
- Maven 中央仓库
- 结对测试工具PICT用户手册(5)——输出格式
- 解题报告:Two Sum
- Oracle序列小结
- codevs3184 SYY奇遇记·····3
- express-session的简单使用说明
- MySQL WorkBench
- Ubuntu离线安装网卡驱动
- BZOJ3489: A simple rmq problem kdtree
- 【ife】任务二十八:行星与飞船(三)
- IDEA+Maven搭建Web2.5工程
- URI is not registered(Settings |... | Schemas and DTDs)
- java notify()、 notifyAll()、 wait()、sleep()、yield()、join()方法学习
- Android 利用 <activity-alias> 动态改变 App 桌面图标