NodeJS express用redis存储session,报错 A client must be directly provided to the RedisStore 的解决方案

    

const RedisStrore = require('connect-redis')(session)

const session = require('express-session')

const express = require('express')

const app = express()

app.use('/', session({

        secret: "xingchuangke",

        resave: false,

        saveUninitialized: true,

        name: 'uid',

        store: new RedisStrore({ "host": "127.0.0.1", "port": 20585}),

        cookie: ('name', 'value', { maxAge: 3600 * 1000, secure: false })

    }))

这样子的代码运行后,提示错误 A client must be directly provided to the RedisStore,于是翻看npm里connect-redis的介绍,发现原来少装了个redis于是

npm install redis

安装redis

然后代码修改为

const RedisStrore = require('connect-redis')(session)

const session = require('express-session')

const redis = require('redis')

const express = require('express')

const app = express()

app.use('/', session({

        secret: "xingchuangke",

        resave: false,

        saveUninitialized: true,

        name: 'uid',

        store: new RedisStrore({client: redis.createClient(20585,'127.0.0.1)}),

        cookie: ('name', 'value', { maxAge: 3600 * 1000, secure: false })

    }))

然后重新运行,OK了

原创文章 3 获赞 5 访问量 109

猜你喜欢

转载自blog.csdn.net/smildwind/article/details/106111099