Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

206
Vistas
Conexión de caché MongoDb con Next.js 10 TypeScript Project - API Route

Estoy tratando de convertir next.js/examples/with-mongodb/util/mongodb.js a TS para poder almacenar en caché y reanudar mis conexiones a Mongo dentro de un proyecto TS next.js. Recibo un error de TS en cache.promise que dice: Type 'Promise<MongoClient | { client: MongoClient; db: Db; }>' is not assignable to type 'Promise<MongoClient>'

¿Cómo debo declarar correctamente la propiedad mongo en global para apaciguar a los dioses TS?

 import { MongoClient, Db } from "mongodb"; const { DATABASE_URL, DATABASE_NAME } = process.env; declare global { namespace NodeJS { interface Global { mongo: { conn: MongoClient | null; promise: Promise<MongoClient> | null; }; } } } let cached = global.mongo; if (!cached) { cached = global.mongo = { conn: null, promise: null }; } async function connect() { if (cached.conn) { return cached.conn; } if (!cached.promise) { const opts = { useNewUrlParser: true, useUnifiedTopology: true, }; cached.promise = MongoClient.connect(DATABASE_URL, opts).then((client) => { return { client, db: client.db(DATABASE_NAME), }; }); } cached.conn = await cached.promise; return cached.conn; } export { connect };
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No necesita almacenar en caché su conexión, verifique los últimos nextjs con el ejemplo de mongodb. Los expertos del foro oficial de mongodb me llevaron a este proyecto de ejemplo.

Intenta usar soluciones nativas

over 4 years ago · Santiago Trujillo Denunciar

0

La propiedad ' conn ' que está almacenando contiene MongoClient y Db .

En su declaración global para mongo , solo ha incluido MongoClient . Tengo exactamente el mismo código en mi proyecto y la forma en que manejo esto es simplemente crear un tipo básico llamado MongoConnection que contiene ambos. Código a continuación.

 type MongoConnection = { client: MongoClient; db: Db; }; declare global { namespace NodeJS { interface Global { mongo: { conn: MongoConnection | null; promise: Promise<MongoConnection> | null; } } } }
over 4 years ago · Santiago Trujillo Denunciar

0

parece que la respuesta es simplemente hacer que la propiedad mongo any como esta:

 declare global { namespace NodeJS { interface Global { mongo: any; } } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda