Estoy tratando de realizar una consulta .find() simple en mi mongodbAtlas, pero el resultado de esta consulta es un objeto vacío.
este es mi archivo de servidor:
require("dotenv").config({ path: "./config.env" }); const { MongoClient, ServerApiVersion } = require("mongodb"); const express = require("express"); const { ServiceBroker } = require("moleculer"); const AUTH_SERVICE = require("./controller/services/auth/auth.service"); global.broker = new ServiceBroker({ nodeID: "auth", }); const app = express(); app.use(express.json()); app.use("/auth", require("./routes/auth")); const { PORT, URI } = process.env || 5000; global.broker.createService(AUTH_SERVICE); const start = async () => { const dba = await MongoClient.connect(URI, { useNewUrlParser: true, useUnifiedTopology: true, }); global.db = dba.db("Auth"); try { await dba.connect(); console.log("DATABASE CONNESSO CON SUCCESSO📡"); } catch (e) { console.error(e); } await global.broker.start(); app.listen(PORT, () => console.log(`PORT IT'S UP AND RUNNING 🚀 ON ${PORT}`)); }; start();este es mi archivo de rutas:
const express = require("express"); const router = express.Router(); router.get("/register", async (req, res) => { const data = global.db.collection("Users").find({}).toArray(); res.send(data); }); module.exports = router;así es como se rellena mi documento:
{"_id":{"$oid":"6297bbc83a95b81d74882f65"},"username":"Test","email":"test@gmail.com","password":"1234"}Creo que te falta la palabra clave "aguardar" después de los datos constantes... ya que las llamadas de obtención de datos API son asincrónicas y requieren promesa/espera asincrónica para manejar. Al ser asíncrono por naturaleza, avanza a la siguiente instrucción y devuelve una matriz vacía.
const express = require("express"); const router = express.Router(); router.get("/register", async (req, res) => { const data = await global.db.collection("Users").find({}).toArray(); res.send(data); }); module.exports = router;