877   HTTP JS MongoDB NodeJS

一,cookie和session
1,cookie是保存在客户端,每次请求都会传给服务器,传送用户的登录、检验等信息,即cookie记录用户在客户端的信息
2,session保存在服务器,一般放在内存,也有放在数据库中,保存用户的登录、检验等信息,所以session是在服务器端记录用户信息,包括记录cookie值

详细介绍:http://blog.csdn.net/fangaoxin/article/details/6952954

二,express框架下,在服务端用mongod保存session,session的ID会通过cookie传送给客户端保存着,客户端每次请求时都会把cookie(包含了session的ID)回传给服务端,服务端根据session的ID,在mongod查找对应的session,进行用户登录信息校验,下面具体代码
在app.js 初始化express-session,用于操作session;初始化connect-mongo,用于保存session到mongod

const session = require('express-session');
const MongoStore = require('connect-mongo')(session);
app.use(session({
    secret: "123456",
    name: "sessionName", // 传送到客户端浏览器时对应的cookie的name
    cookie: {
        maxAge:1000 * 60 * 60 * 24 * 30 // cookie有效期,如果session有限期默认读取这个
    },
    resave: false,
    saveUninitialized: true,
        store: new MongoStore({ 
               url:"mongodb://localhost/myExpressAppSession" // 保存session的mongod数据库
    })
}));

使用session

function saveUserSession(req,user){
	var session = req.session; // 获取session
	session.user = user; // 在session中保存用户信息
}

function removeUserSession(req,callback){
	req.session.destroy(callback); // 删除session中保存的用户信息
}

 

 

github介绍:
https://github.com/expressjs/session?_ga=1.74482769.258355933.1450262776

https://github.com/kcbanner/connect-mongo

查看资料
http://www.cnblogs.com/chenchenluo/p/4197181.html




Leave a Reply

Your email address will not be published. Required fields are marked *