Warning: connect.session() Memor

2021-03-11  本文已影响0人  AizawaSayo

在打包 Node + express 服务端项目的时候发现报了一个warning,意思是connect.session()MemoryStore不是为生产环境设计的,因为它会泄漏内存,并且不会扩展到单个进程。


为了解决这个问题,我们应该添加一个存储系统来把session都存储到数据库中,这有助于应用程序的session管理。
我们用connect-mongo来做这件事。

先安装这个包 npm install connect-mongo
接下来在app.js中间件中配置

import config from 'config'
import session from 'express-session'
const MongoStore = require('connect-mongo').default

//配置session
app.use(
  session({
    secret: 'secret key',
    resave: false,
    saveUninitialized: true,
    cookie: {
      maxAge: 24 * 60 * 60 * 1000,
    },
    store: MongoStore.create({
      mongoUrl:  `mongodb://${config.get('db.user')}:${config.get('db.pwd')}@${config.get('db.host')}:${config.get('db.port')}/${config.get('db.name')}`
    })
  })
)
注⚠️:我引入的config是我项目根目录下的配置文件

具体可参考官方文档:express-session文档connect-mongo文档

搞定,又可以愉快地玩耍了
上一篇 下一篇

猜你喜欢

热点阅读