node.js - session怎么存到cookie,然后服務(wù)器重啟后還能獲取。數(shù)據(jù)庫(kù)不用mongodb或redis,數(shù)據(jù)庫(kù)是mysql
問(wèn)題描述
網(wǎng)上大多數(shù)據(jù)庫(kù)是mongodb和redis,存session的時(shí)候直接new一個(gè)對(duì)象出來(lái)保存。現(xiàn)在我想數(shù)據(jù)庫(kù)是mysql,所以怎么做才能服務(wù)器重啟后根據(jù)sessionid獲取相應(yīng)的信息還有這個(gè)req.session.user = user;,直接寫(xiě)就能把session存進(jìn)cookie了嗎
問(wèn)題解答
回答1:如果用的是express-session 插件,可以切換session 存儲(chǔ)插件的, 你可以使用mysql 進(jìn)行session 緩存;你需要裝一個(gè) connect-mysql模塊,并設(shè)置session 的存儲(chǔ)方式。
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 中存儲(chǔ)的是sessionId的加密信息, 分成兩段用‘.’ 分割,第一部分是sessionId 第二部分是sessionId 的加密結(jié)果,用來(lái)校驗(yàn)cookie 是否被竄改

網(wǎng)公網(wǎng)安備