node.js - session怎么存到cookie,然后服务器重启后还能获取。数据库不用mongodb或redis,数据库是mysql
问题描述
网上大多数据库是mongodb和redis,存session的时候直接new一个对象出来保存。现在我想数据库是mysql,所以怎么做才能服务器重启后根据sessionid获取相应的信息还有这个req.session.user = user;,直接写就能把session存进cookie了吗
问题解答
回答1:如果用的是express-session 插件,可以切换session 存储插件的, 你可以使用mysql 进行session 缓存;你需要装一个 connect-mysql模块,并设置session 的存储方式。
var express = require(’express’), MySQLStore = require(’connect-mysql’)(express), options = { config: { user: ’dbuser’, password: ’dbpassword’, database: ’db’ } }; var app = express.createServer();app.use(express.cookieParser());app.use(express.session({ secret: ’supersecretkeygoeshere’, store: new MySQLStore(options) }));
另外 cookie 中存储的是sessionId的加密信息, 分成两段用‘.’ 分割,第一部分是sessionId 第二部分是sessionId 的加密结果,用来校验cookie 是否被窜改