Internet通讯协议分为stateful和stateless两类,对Web开发有一定了解的应该知道,http是stateless协议,客户端发送请求到服务端建立一个连接,请求得得到响应后连接即中断,服务器端不会记录状态,因此服务器端想
要确定是哪个客户端提交过来的请求,那就必须要借助一些东西去完成,就是session和cookies,现在我们先说说session,以及在nodejs下使用session !
session存在于服务器端,需要cookies的协助才能完成;服务器端和客户端通过session id来建立联系(具体session和cookies怎么协作的,可以自已去补充点相关知识,这里只简单提一下,不展开了,要不然这篇文章就更杂了_!)
express中可以用中间件来使用session,express-session( https://github.com/expressjs/session ) 可以存在内存中,也可以存在mongodb、redis等中...
更多中间件:https://github.com/senchalabs/connect#middleware
下面我们通过示例看看怎么使用session (内存方式)
示例设计思路:使用两个页面,一个登录,两个页都判断是否有这个session,如果有,显示已登录,没有则显示一个登录按钮,点此按钮,记录session
1.首先通过npm安装这个中间件,打开package.json文件,在dependencies节点下添加一个键值对 "express-session" : "latest"
lateset:最新的cd到项目根目录下,执行npm install 3.打开app.js,添加如下代码
4.我这里使用usesession和usecookies作示例,修改js和ejs如下
5.运行并查看
第一次运行时,查看两个页,效果如下:
发表评论