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 是否被竄改
