nuxt 3ミドルウェアからredisクライアントに接続しようとしていますが、接続が定義されていません
P粉512526720
P粉512526720 2023-08-30 13:36:47
0
1
635
<p>Redis サーバーに接続して nuxt 3 DefineNuxtRouteMiddleware ミドルウェアからセッション データを取得しようとしていますが、成功しません。サーバー側プラグインで Redis への接続を作成しました。すべての API エンドポイントで機能しますが、rout-guards ミドルウェアでは機能しないようです。以下のコードで接続を取得しようとしましたが、接続が定義されていません。ミドルウェアのサーバー側の実行が Redis 接続にアクセスできるはずだと考えるのは間違っていますか</p> <pre class="brush:php;toolbar:false;">if (process.server) { let session = await RedisUtil.getConnection.get(sessionID); }</pre> <p>以下は redisUtil</p> です。 <pre class="brush:php;toolbar:false;">class RedisUtil{ 静的 getgetConnection(){ this.connection を返します。 } 静的セット setConnection(接続){ this.connection = 接続; } 静的非同期接続(config) { let redis = createClient({ URL: 'redis://' config.redis.user ':' config.redis.password '@' config.redis.host ':' config.redis.port }); redis.on('エラー', err => console.log('Redis クライアント エラー', err)); redis.connect() を待ちます; RedisUtil.setConnection = redis; console.log("redis に接続されました"); } }</pre> <p>Redis プラグインが nitro 構成にロードされました</p> <pre class="brush:php;toolbar:false;">RedisUtil を '../utils/RedisUtil' からインポートします; 「~/server.config」から設定をインポートします。 デフォルトの非同期 (NuxtApp) をエクスポート => { RedisUtil.connect(config) を待ちます; };</pre> <pre class="brush:php;toolbar:false;">nitro: { プラグイン: [ 「~/server/plugins/redis.js」 ]、 },</pre> <p>上で述べたように、他のすべてのサーバー側の実行では Redis 接続にアクセスできますが、ミドルウェアではアクセスできません。これに関してご協力をいただければ幸いです。 </p>
P粉512526720
P粉512526720

全員に返信(1)
P粉098979048

サーバー側部分でのみ Redis リクエストを実行しているようです。これが発生すると、クライアント側のルーティングでコンテキストが失われます。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート