Es wird versucht, über die Nuxt 3-Middleware eine Verbindung zum Redis-Client herzustellen, aber die Verbindung ist nicht definiert
P粉512526720
P粉512526720 2023-08-30 13:36:47
0
1
460

Ich versuche erfolglos, eine Verbindung zu einem Redis-Server herzustellen, um Sitzungsdaten von der Nuxt 3 DefineNuxtRouteMiddleware-Middleware abzurufen. Ich habe im serverseitigen Plugin eine Verbindung zu Redis erstellt und es funktioniert für alle meine API-Endpunkte, aber es scheint nicht für meine Rout-Guards-Middleware zu funktionieren. Ich versuche, die Verbindung im folgenden Code herzustellen, aber die Verbindung ist nicht definiert. Liege ich falsch in der Annahme, dass die serverseitige Ausführung der Middleware Zugriff auf die Redis-Verbindung haben sollte

if (process.server) { let session = waiting RedisUtil.getConnection.get(sessionID); }

Das Folgende ist redisUtil

class RedisUtil{ statisch getgetConnection(){ return this.connection; } statische Menge setConnection(connection){ this.connection = Verbindung; } statische asynchrone Verbindung (config) { let redis = createClient({ URL: 'redis://' + config.redis.user + ':' + config.redis.password + '@' + config.redis.host + ':' + config.redis.port }); redis.on('error', err => console.log('Redis Client Error', err)); Warten Sie auf redis.connect(); RedisUtil.setConnection = redis; console.log("Mit Redis verbunden"); } }

Redis-Plugin in Nitro-Konfiguration geladen

import RedisUtil from '../utils/RedisUtil'; Konfiguration aus „~/server.config“ importieren; Standardmäßig asynchron exportieren (NuxtApp) => Warten Sie auf RedisUtil.connect(config); };
nitro: { Plugins: [ "~/server/plugins/redis.js" ], },

Wie oben erwähnt, kann ich in allen anderen serverseitigen Ausführungen auf die Redis-Verbindung zugreifen, jedoch nicht in der Middleware. Jede Hilfe hierzu wäre sehr dankbar.

P粉512526720
P粉512526720

Antworte allen (1)
P粉098979048

看来您只在服务器端部分运行 Redis 请求。当客户端路由发生时使其失去上下文。

export default defineNuxtRouteMiddleware(async (to, from) => { let session = ''; if (process.server) { session = 'has some context'; } // server: session = 'has some context' // client: session = '' })
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!