Acabo de empezar con svelte y estaba tratando de hacer una aplicación con redis como base de datos. Hice un archivo mecanografiado con todas las funciones de db que necesitaría e intenté importarlo a mis componentes esbeltos, pero cuando lo hice, recibí el siguiente error
Class extends value undefined is not a constructor or null TypeError: Class extends value undefined is not a constructor or null at node_modules/@node-redis/client/dist/lib/client/socket.js (http://localhost:3000/node_modules/.vite/chunk-L35TFNQI.js?v=60c87e0f:6515:46) at __require (http://localhost:3000/node_modules/.vite/chunk-VP3FZ6LR.js?v=60c87e0f:25:44) at node_modules/@node-redis/client/dist/lib/client/index.js (http://localhost:3000/node_modules/.vite/chunk-L35TFNQI.js?v=60c87e0f:9192:20) at __require (http://localhost:3000/node_modules/.vite/chunk-VP3FZ6LR.js?v=60c87e0f:25:44) at node_modules/@node-redis/client/dist/index.js (http://localhost:3000/node_modules/.vite/redis.js?v=60c87e0f:852:20) at __require (http://localhost:3000/node_modules/.vite/chunk-VP3FZ6LR.js?v=60c87e0f:25:44) at node_modules/redis/dist/index.js (http://localhost:3000/node_modules/.vite/redis.js?v=60c87e0f:2589:20) at __require (http://localhost:3000/node_modules/.vite/chunk-VP3FZ6LR.js?v=60c87e0f:25:44) at http://localhost:3000/node_modules/.vite/redis.js?v=60c87e0f:2615:21Este es mi archivo redis (incluso con solo esto, obtengo el mismo error)
import redis from 'redis' export var str = "sample string"Este es el script de mi componente esbelto.
<script lang="ts"> import { str } from "../redis_test"; </script>Normalmente, debido a que el paquete redis - npm está diseñado para Node.js, diría que siga ¿Cómo usar los módulos npm en el navegador? y use browserify para que pueda ejecutarse en el navegador.
Después de leer ¿Puedo conectarme directamente a un servidor Redis desde JavaScript ejecutándose en un navegador? , diría que necesita una configuración del lado del servidor para conectarse a su servidor redis y luego puede consultar su lado del servidor según lo necesite.
Tuve un problema similar y, al leer lo anterior, entiendo que se debió a que el cliente del navegador está tratando de leer la base de datos que está en el servidor. También estoy usando sveltekit y resolví el problema asegurándome de que mi código estuviera en un punto final, que solo se ejecuta en el servidor y luego invocó el punto final para obtener mis datos.