Mis consultas de graphql funcionan con el archivo DB local, pero al intentar conectarse a MongoDB no funciona como se esperaba.
mongo.js
require("dotenv").config(); const mongoose = require("mongoose"); const MONGODB_URI = process.env.MONGODB_URI; if (!MONGODB_URI) { throw new Error( "Please define the MONGODB_URI environment variable inside .env.local" ); } /** * Global is used here to maintain a cached connection across hot reloads * in development. This prevents connections from growing exponentially * during API Route usage. */ let cached = global.mongoose; if (!cached) { cached = global.mongoose = { conn: null, promise: null }; } async function dbConnect() { if (cached.conn) { return cached.conn; } if (!cached.promise) { const opts = { bufferCommands: false, }; cached.promise = mongoose.connect(MONGODB_URI, opts).then((mongoose) => { return mongoose; }); } cached.conn = await cached.promise; return cached.conn; } module.exports = dbConnect; MONGODB_URI=mongodb+srv://xxxx:xxxx@cluster0.yxbw7.mongodb.net/?retryWrites=true&w=majorityconsulta graphql para obtener todos los productos:
exports.typeDefs = gql` type Query { products: [Product!]! } type Product { id: ID! name: String! description: String! price: Float! image: String! } `;Resolutores:
const { Product } = require("../models/Product"); exports.Query = { products: async (parent, args, context) => { let products = await Product.find({}).exec(); return products; }, };La base de datos tiene datos pero sigue haciendo la consulta,
query{ products { description id name price image } }Devuelve una matriz de productos vacía,
{ "data": { "products": [] } }Algo parece estar mal con MongoDB para conectarse con graphql, las consultas funcionan con el archivo DB local que tiene datos de producto de objeto ficticio.