1. 程式人生 > >node4.X以上版本中,session用來保持使用者的登陸(login)狀態

node4.X以上版本中,session用來保持使用者的登陸(login)狀態

1.要引入session所依賴的中介軟體

var cookieParser=require("cookie-parser") 
var session=require("express-session")
var mongoStore=require("connect-mongo")(session) 
var dbUrl="mongodb://localhost:27018/moviesProject"
2.
app.use(cookieParser())
app.use(session({
    secret: "imooc",          
    resave: false,          //這個屬性不能省略
    saveUninitialized
: true, //不能省略不寫 store:new mongoStore({ url: dbUrl, collection: "sessions" }) }))
3.使用者提交過來的資料:使用者名稱和密碼,一般賦值給在req.session裡的自定義屬性
 req.session.user=user
就算當伺服器重啟後,重新重新整理頁面,使用者依然是登陸狀態
/ signin 使用者登入
app.post("/user/signin", function (req,res) {
    var _user=req.body.user
var _name=_user
.name //使用者提交過來的使用者名稱 var _password=_user.password //使用者提交過來的密碼 //在資料庫中查詢該使用者名稱,並驗證密碼 User.findOne({name: _name},function(err, user){ if(err){ console.log(err) } if(!user){ return res.redirect("/") } user.comparePassword(_password,function
(err,isMatch){ if(err){ console.log(err) } if(isMatch){ req.session.user=user console.log("password is matched") res.redirect("/") }else{ console.log("password is not matched") } }) }) })