node4.X以上版本中,session用来保持用户的登陆(login)状态

来源:互联网 发布:中间人代理串改数据 编辑:程序博客网 时间:2024/05/17 11:58

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")            }        })    })})

原创粉丝点击