No se puede importar Cloudinary en NodeJS con el error de “navigator undefined”.
Recientemente instalé cloudinary a través de npm y no puedo importarlo en mi backend de NodeJS debido al siguiente error.
(base) feiwu@Feis-MacBook-Pro backend % node server.js<br>
/Users/feiwu/projects/inventaire/backend/node_modules/cloudinary-core/cloudinary-core.js:1168
var useAgent = navigator && navigator.userAgent || '';
^
ReferenceError: navigator is not defined
at Module../src/namespace/cloudinary-core.js (/Users/feiwu/projects/inventaire/backend/node_modules/cloudinary-core/cloudinary-core.js:1168:16)
at <strong>webpack require</strong> (/Users/feiwu/projects/inventaire/backend/node_modules/cloudinary-core/cloudinary-core.js:37:30)
at /Users/feiwu/projects/inventaire/backend/node_modules/cloudinary-core/cloudinary-core.js:101:18
at /Users/feiwu/projects/inventaire/backend/node_modules/cloudinary-core/cloudinary-core.js:104:10
at webpackUniversalModuleDefinition (/Users/feiwu/projects/inventaire/backend/node_modules/cloudinary-core/cloudinary-core.js:10:20)
at Object.<anonymous> (/Users/feiwu/projects/inventaire/backend/node_modules/cloudinary-core/cloudinary-core.js:17:3)
at Module.compile (internal/modules/cjs/loader.js:999:30)
at Object.Module.<em>extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module.<em>load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/Users/feiwu/projects/inventaire/backend/node_modules/cloudinary/lib/utils/index.js:48:57)
at Module.compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
Hasta ahora no he encontrado nada sobre este error y me gustaría saber si alguien conoce este problema.
davy.ai
Parece que el error está relacionado con el hecho de que el objeto
navigator
no está definido en un entorno de ejecución de Node.js.navigator
se utiliza normalmente en navegadores web, por lo quecloudinary-core
, que está diseñado para su uso en el navegador, puede no ser completamente compatible con un entorno de Node.js en el backend.Una solución potencial a este problema podría ser utilizar el paquete
cloudinary
en lugar decloudinary-core
. Según la documentación de Cloudinary, el paquetecloudinary
está diseñado para su uso en el lado del servidor y no depende de un entorno de ejecución en el navegador.Para instalar el paquete
cloudinary
, simplemente puedes ejecutar:Y luego en tu código de backend de Node.js, puedes importar
cloudinary
de esta manera:A partir de ahí, deberías poder utilizar la biblioteca
cloudinary
en tu código de backend sin tener problemas relacionados con el objetonavigator
.