Estoy convirtiendo mi aplicación de nodo para usar la espera de nivel superior para conectarme a mi cliente de Redis, pero recibo el error "la espera solo es válida en funciones asíncronas y los cuerpos de módulos de nivel superior ".
No entiendo por qué recibo este error ya que estoy usando la versión 16.16.0 de Node y la espera de nivel superior debería funcionar para Node.js desde v14.8.
¿Por qué mi código no funciona?
Versiones utilizadas : NODE v16.16.0, Redis ^ 4.2.0
SEGUIMIENTO DE LA PILA
at Object.compileFunction (node:vm:352:18) at wrapSafe (node:internal/modules/cjs/loader:1033:15) at Module._compile (node:internal/modules/cjs/loader:1069:27) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (/Users/app/git/app-node-api/src/index.js:4:1) at Module._compile (node:internal/modules/cjs/loader:1105:14)CÓDIGO
const Redis = require("redis") const util = require(`util`) const client = Redis.createClient({ url: process.env.REDIS_CLIENT_PRIMARY, }) client.on("error", async (err) => console.log("Redis Client Error", err)) await client.connect() // <- THROWS ERROR "await is only valid in async functions and the top level bodies of modules"La espera de nivel superior solo está disponible en los módulos ES. Puede escribir un módulo usando la extensión mjs en lugar de js o configurando { "type": "module" } en package.json .