Recibo este error mientras lo implemento en Vercel/Netlify. Recibir el mismo error para Vercel y Netlify durante la implementación. Cualquier paso para resolver este problema sería útil.
Código de la base de datos:
import mongoose from 'mongoose'; const connection = {}; async function connect() { if (connection.isConnected) { console.log('already connected'); return; } if (mongoose.connections.length > 0) { connection.isConnected = mongoose.connections[0].readyState; if (connection.isConnected === 1) { console.log('use previous connection'); return; } await mongoose.disconnect(); } const db = await mongoose.connect(process.env.MONGODB_URI, { // useNewUrlParser: true, // useUnifiedTopology: true, }); console.log('new connection'); connection.isConnected = db.connections[0].readyState; } async function disconnect() { if (connection.isConnected) { if (process.env.NODE_ENV === 'production') { await mongoose.disconnect(); connection.isConnected = false; } else { console.log('not disconnected'); } } } function convertDocToObj(doc) { doc._id = doc._id.toString(); doc.createdAt = doc.createdAt.toString(); doc.updatedAt = doc.updatedAt.toString(); return doc; } const db = { connect, disconnect, convertDocToObj }; export default db;Captura de pantalla de error
Error:
(
{"errorType":"Runtime.UnhandledPromiseRejection","errorMessage":"MongooseError: Theparameter toopenUri()must be a string, got \"undefined\". Make sure the first parameter tomongoose.connect()orparameter to()is a string.","trace":["Runtime.UnhandledPromiseRejection: MongooseError: Themust be a string, got \"undefined\". Make sure the first parameter toconnect()ormongoose.createConnection()is a string."," at process.<anonymous> (/var/runtime/index.js:35:15)"," at process.emit (events.js:314:20)"," at processPromiseRejections (internal/process/promises.js:209:33)"," at processTicksAndRejections (internal/process/task_queues.js:98:32)"]})
1) Verifique su cadena de conexión de mongoDB. En su archivo .env y compárelo con los datos del atlas
tu usuario es correcto? tu contraseña es correcta? ¿Tu nombre de clúster es el mismo? el nombre de su base de datos es el mismo?
1a) ¡Asegúrese de que su .env esté en la carpeta raíz!
2) Consulte la IP de acceso a la red en mongoDB Atlas. ¿Está activo? De no ser así, establecer uno nuevo.
3) Si está utilizando VPN , apáguelo.
4)Y por último =>https://vercel.com/docs/concepts/projects/environment-variables
¡Espero que te ayude! Buena suerte ;-)