Wenn ich meinen Redis-Server-Status überprüft habe, heißt esDer Redis-Server läuft, aber ich habe diesen Fehler erhalten, wenn ich mich anmelde RedisClient.on ("error", Funktion (err) { console.log ("Redis-Fehler:" + err); // Redis-Fehler: Fehler: Redis-Verbindung zu 127.0.0.1:6379 ist fehlgeschlagen }); und wenn ich versuche, die req.session zu trösten, wird undefined zurückgegeben. irgendein Hinweis auf dieses Problem? bitte helft mir, ich bin neu dazu. Danke dir
Hier ist mein Setup:
var express = require("express");
var redis = require("redis");
var session = require("express-session");
var redisStore = require("connect-redis")(session);
var parser = require("body-parser");
var RedisClient= redis.createClient();
app.use(session({
secret: "myseceret",
store: new redisStore({host: "127.0.0.1", port: 6379, client: client,ttl : 260}),
saveUninitialized: false,
resave: false,
cookie: { secure: true }
}));
client.on("error", function(err) {
console.log("Redis error: " + err);
});
Antworten:
0 für die Antwort № 1Sie haben sich gegenseitig ausschließende Parameter in Optionen für redisStore angegeben. Sie übergeben entweder den Host und den Port oder nur den vorhandenen Redis-Client.
Zitieren connect-redis Dokumente -
Ein Redis-Client ist erforderlich. Ein vorhandener Client kann direkt mit dem Clientparameter übergeben oder mit Host-, Port- oder Socketparametern erstellt werden
Es gab auch einige Referenzfehler, die ich in diesem Snippet korrigiert habe.
var express = require("express");
var redis = require("redis");
var session = require("express-session");
var redisStore = require("connect-redis")(session);
var parser = require("body-parser");
var RedisClient= redis.createClient();
var app = express();
app.use(session({
secret: "mysecret",
store: new redisStore({client: RedisClient,ttl : 260}),
saveUninitialized: false,
resave: false,
cookie: { secure: true }
}));
RedisClient.on("error", function(err) {
console.log("Redis error: " + err);
});
RedisClient.on("ready",function () {
console.log("Redis is ready");
});