向其添加 Redis 后,在任何连接请求后关闭 Express 应用程序
Express app closing after any connection request after adding Redis to it
所以,我刚刚将 Redis 添加到我的 expressjs 应用程序(这是我第一次使用 redis),这就是我添加 Redis 所做的全部工作:
import express, { Application } from 'express';
import session from 'express-session';
import {createClient} from 'redis';
import connectRedis from 'connect-redis'
const app: Application = express();
const RedisStore = connectRedis(session);
const redisClient = createClient({
url: 'redis://localhost:6379'
});
app.use(session({
secret: SESSION_SECRET,
resave: false,
saveUninitialized: true,
store: new RedisStore({ client: redisClient }), // added this line
cookie: {
maxAge: 1000 * 60 * 2,
httpOnly: false,
secure: false,
}
}));
export default app;
但是,当我向我的任何快速路线发出任何请求时,我会在控制台上立即收到错误消息,并且该应用程序会因任何进一步的请求而关闭。这是错误:
如您所见,屏幕截图顶部有一行 Server is listening on port 3000
,其余字符串仅在我向 api 发出第一个请求时出现。
我在这里错过了什么,我做错了什么?因为互联网上的每个 video/article 都有完全相同的代码...
好吧,正如@Apoorva Chikara 注意到的和@Leibale Eidelman 提到的,connect-redis
还不支持最新的 node-redis
,所以为了修复它,我刚刚降级了我的 redis
包使用 $ yarn add redis@3.1.2
.
到版本 3.1.2
谢谢!
所以,我刚刚将 Redis 添加到我的 expressjs 应用程序(这是我第一次使用 redis),这就是我添加 Redis 所做的全部工作:
import express, { Application } from 'express';
import session from 'express-session';
import {createClient} from 'redis';
import connectRedis from 'connect-redis'
const app: Application = express();
const RedisStore = connectRedis(session);
const redisClient = createClient({
url: 'redis://localhost:6379'
});
app.use(session({
secret: SESSION_SECRET,
resave: false,
saveUninitialized: true,
store: new RedisStore({ client: redisClient }), // added this line
cookie: {
maxAge: 1000 * 60 * 2,
httpOnly: false,
secure: false,
}
}));
export default app;
但是,当我向我的任何快速路线发出任何请求时,我会在控制台上立即收到错误消息,并且该应用程序会因任何进一步的请求而关闭。这是错误:
如您所见,屏幕截图顶部有一行 Server is listening on port 3000
,其余字符串仅在我向 api 发出第一个请求时出现。
我在这里错过了什么,我做错了什么?因为互联网上的每个 video/article 都有完全相同的代码...
好吧,正如@Apoorva Chikara 注意到的和@Leibale Eidelman 提到的,connect-redis
还不支持最新的 node-redis
,所以为了修复它,我刚刚降级了我的 redis
包使用 $ yarn add redis@3.1.2
.
3.1.2
谢谢!