Cuba untuk menyambung kepada klien redis daripada perisian tengah nuxt 3 tetapi sambungan tidak ditentukan
<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>