No puedo exportar el cliente correctamente de db.js a User.js
db.js
const some= MongoClient.connect(process.env.CONNECTIONSTRING).then((client) =>{ module.exports=client const app = require("./app") app.listen(process.env.PORT) })Usando el cliente aquí, puedo hacer métodos como client.db().collection("users");
Pero no puedo hacerlo usando user.js
Usuario.js
const usersCollection = require("../db").db().collection("users");Esto da error diciendo const
usersCollection = require("../db").db().collection("users"); ^ TypeError: require(...).db is not a functionTal vez me equivoque, pero en la función de devolución de llamada para MongoClient, el primer argumento es el error y el segundo argumento es para el cliente. (err, cliente)
por lo que está llamando a db() por error y no por cliente
Y también intente exportar desde el alcance global como lo menciona Maxime en el comentario
Tiene este problema porque está importando algo que es asíncrono y cuando lo hace en 1 línea, el cliente no está listo cuando intenta llamarlo con db().collection("users") .
Puede verificar si el problema es asíncrono cambiando su código a esto:
const temp = require("../db") setTimeout(() => { temp.db().collection("users") }, 1000)También puede consultar aquí un ejemplo de cómo hacer la conexión a la base de datos correctamente https://www.terlici.com/2015/04/03/mongodb-node-express.html