node 项目 启动报错 A client must be directly provided to the RedisStore

一开始小编用google 百度 怎么都查不到原因,即便能搜到类似的问题也感觉没有明确的解决方案,所以我来了O(∩_∩)O

一眼就看懂的 A client must be directly provided to the RedisStore 错误解决方案

首先每次启动就会报

image

一开始不知道原因就去百度,百度不行就去google,终于让我开窍了

原来是版本的问题

/*  这是错误版本
const sessionMiddleware = session({
    secret: 'new-tour',
    resave: false,
    saveUninitialized: true,
    store: new RedisStore({client: redisClient  })
}); */

//以下是正确版本
const sessionMiddleware = session({

    secret: 'new-tour',

    resave: false,

    saveUninitialized: true,

    store: new RedisStore({client: redis.createClient(config.port, config.host)})

});

/* 看出来区别了吗
  new RedisStore({client: redisClient  })
  new RedisStore({client: redis.createClient(config.port, config.host)})
*/

1 是因为我没有引入redis,2 是因为没有用 redis.createClient

**以下代码即为正确解决方案 **

**如果没有引入****redis **

npm i redis
image.gif
const cluster = require('cluster');
const redis = require('redis');
const express = require('express');
const session = require('express-session');
const config = require('./config');
const app = express();
let RedisStore = require('connect-redis')(session)
const ejs=require('ejs');

const sessionMiddleware = session({
    secret: 'new-tour',
    resave: false,
    saveUninitialized: true,
    store: new RedisStore({client: redis.createClient(config.port, config.host)})
});
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容