zoukankan      html  css  js  c++  java
  • express中的会话存储方式

    会话存储需要用的express-session包

    app.use(require('express-sessiion')())

    express-session接收带有如下选项的配置对象:

    key;存放唯一会话标识的cookie名称,默认为connect.sid,

    store 会话存储的实例,默认为一个MemoryStore的实例

    cookie 会话cookie的cookie设置(path,domain,secure等)

    会话设置之后使用起来非常简单,就是使用req请求对象的session属性,注意,响应对象上是没有session属性的

    req.session.userName = 'kevin' //设置session
    
    delete req.sessiion.userName 删除session

    通常,生产环境我们不会用服务器内存来存储session数据,因为一旦服务器重启session就没了,也不适合做集群扩展。

    可以用mongodb或redis来存储会话数据

    1,mongodb存储会话,需要用到mongoose-session

    var express = require('express');
    
    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/db');
    
    var app = express();
    
    app.use(require('express-session')({
        key: 'session',
        secret: 'SUPER SECRET SECRET',
        store: require('mongoose-session')(mongoose)
    }));

    mongodb存储会话有很多插件可用,另外一个很好的插件connect-mongo-store

    var express = require('express');
    var app = express();
    var MongoStore = require('connect-mongo-store')(express)
    
    app.use(express.session({store: MongoStore, secret: 'keyboard cat'}))
    
    or
    
    app.use(require(''express-session")({store:MongoStore,secret:''xxxx}))

    2,redis存储会话

    var session = require('express-session');
    var RedisStore = require('connect-redis')(session);
     
    app.use(session({
        store: new RedisStore(options),
        secret: 'keyboard cat'
    }));

    options对象主要包括以下几个选项

    client:redis客户端,通过安装node_redis来创建redis客户端对象

    host redis服务器主机名

    port redis服务器端口

    url redis服务器url

  • 相关阅读:
    2019学期第十周编程总结
    2019学期第九周编程总结
    第七次作业
    第六次作业
    第五次作业
    jsp第四次作业
    3.10
    3.4
    3.3jsp作业
    最后一次安卓作业
  • 原文地址:https://www.cnblogs.com/toward-the-sun/p/6886308.html
Copyright © 2011-2022 走看看