Connect是一個node中間件(middleware)框架。具體不表,看官網介紹 http://www.senchalabs.org/connect/
在app.js中配置下(必須放到app.use(routes);之前)
var connect = require("connect");
app.use(connect.cookieParser());
app.use(connect.session({ secret: 'jiami', cookie: { maxAge: 60*60*24*1000}}));
然后在控制器中使用
//設置
req.session.username="sess_username";
req.session.password="sess_admin";
req.session.your = {username:"sess_name",password:"sess_pwd"};
//使用
console.log(req.session.username);
console.log(req.session.your);
其它方法
//注銷session
req.session.destroy(function(err){
console.log(err);
})
//重新生成sid
req.session.regenerate(function(err){
console.log(err);
});
當設置了session后,我們看到cookie中多了條sid,是為了記錄會話ID的
打印req.cookies和req.session對象
console.log(req.cookies);
console.log(req.session);
可以看到session是通過存了個connect.sid的方式來與客戶端會話的,不過session是存在內存中的
二、cookie,官方文檔:(http://www.senchalabs.org/connect/cookieParser.html 這個文檔坑了我整整一天時間),費話不表,下面的例子是哥試出來的,因為文檔上沒寫使用方法
設置
//設置cookie
res.cookie("user",{username:"cookie_name",password:"cookie_pwd"},{ maxAge: 60*60*24*1000,httpOnly:true, path:'/'});
res.cookie("msg", "用戶名或密碼不能為空", {maxAge:60*60*24*1000});
刪除
res.cookie("msg", "用戶名或密碼不能為空", {maxAge:0});