Cuba untuk menyambung kepada klien redis daripada perisian tengah nuxt 3 tetapi sambungan tidak ditentukan
P粉512526720
P粉512526720 2023-08-30 13:36:47
0
1
518
<p>Saya cuba menyambung ke pelayan Redis untuk mendapatkan data sesi daripada nuxt 3 DefineNuxtRouteMiddleware middleware tanpa kejayaan. Saya mencipta sambungan ke redis dalam pemalam sisi pelayan dan ia berfungsi untuk semua titik akhir api saya, tetapi ia nampaknya tidak berfungsi untuk perisian tengah penghalang-penghalang saya. Saya cuba mendapatkan sambungan dalam kod di bawah tetapi sambungan tidak ditentukan. Adakah saya salah dalam mengandaikan bahawa pelaksanaan sisi pelayan middleware harus mempunyai akses kepada sambungan Redis</p> <pre class="brush:php;toolbar:false;">if (process.server) { biarkan sesi = menunggu RedisUtil.getConnection.get(sessionID); }</pre> <p>Berikut ialah redisUtil</p> <pre class="brush:php;toolbar:false;">class RedisUtil{ statik dapatkan getConnection(){ kembalikan ini.sambungan; } set statik setConnection(connection){ ini.sambungan = sambungan; } sambung tak segerak statik(konfigurasi) { biarkan 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)); tunggu redis.connect(); RedisUtil.setConnection = redis; console.log("Disambungkan ke redis"); } }</pre> <p>pemalam redis dimuatkan ke dalam konfigurasi nitro</p> <pre class="brush:php;toolbar:false;">import RedisUtil daripada '../utils/RedisUtil'; import konfigurasi daripada "~/server.config" eksport async lalai (NuxtApp) => tunggu RedisUtil.connect(config); };</pre> <pre class="brush:php;toolbar:false;">nitro: { pemalam: [ "~/server/plugins/redis.js" ], },</pre> <p>Seperti yang dinyatakan di atas, saya boleh mengakses sambungan redis dalam semua pelaksanaan sebelah pelayan lain, tetapi tidak dalam perisian tengah. Sebarang bantuan mengenai perkara ini amat dihargai. </p>
P粉512526720
P粉512526720

membalas semua(1)
P粉098979048

Nampaknya anda hanya menjalankan permintaan Redis pada bahagian sisi pelayan. Menyebabkan penghalaan pihak klien kehilangan konteks apabila ia berlaku.

export default defineNuxtRouteMiddleware(async (to, from) => {
  let session = '';
  if (process.server) {
    session = 'has some context';
  }

  // server: session = 'has some context'
  // client: session = ''
})
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!