Estoy tratando de guardar datos en mongodb a través del método de publicación y usando mongodb atlas con node.js pero me sigue dando un error, proporcioné la cadena de conexión correcta y la contraseña correcta. Por favor, ayuda con respecto a este problema. Gracias.
Aquí está el código:
const mongoose = require('mongoose'); const monngodb_url="mongodb+srv://maarij:asdf360@cluster0-j7wis.mongodb.net/authDB?retryWrites=true&w=majority"; mongoose.connect(monngodb_url, {useNewUrlParser: true,useUnifiedTopology: true}).then(()=>{ console.log("mongodb is connected"); }).catch((error)=>{ console.log("mondb not connected"); console.log(error); });Aquí está el error:
server is running on port 3000 { name: 'myName', email: 'e@mail.com', password: 'abcdefg' } mondb not connected MongooseError [MongooseServerSelectionError]: connection <monitor> to 52.6.250.237:27017 closed at new MongooseServerSelectionError (D:\react-native\reactNativeBackend\node_modules\mongoose\lib\error\serverSelection.js:22:11) at NativeConnection.Connection.openUri (D:\react-native\reactNativeBackend\node_modules\mongoose\lib\connection.js:808:32) at Mongoose.connect (D:\react-native\reactNativeBackend\node_modules\mongoose\lib\index.js:333:15) at Object.<anonymous> (D:\react-native\reactNativeBackend\db\db.js:5:10) at Module._compile (internal/modules/cjs/loader.js:955:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10) at Module.load (internal/modules/cjs/loader.js:811:32) at Function.Module._load (internal/modules/cjs/loader.js:723:14) at Module.require (internal/modules/cjs/loader.js:848:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (D:\react-native\reactNativeBackend\index.js:4:19) at Module._compile (internal/modules/cjs/loader.js:955:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10) at Module.load (internal/modules/cjs/loader.js:811:32) at Function.Module._load (internal/modules/cjs/loader.js:723:14) at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10) { message: 'connection <monitor> to 52.6.250.237:27017 closed', name: 'MongooseServerSelectionError', reason: TopologyDescription { type: 'ReplicaSetNoPrimary', setName: null, maxSetVersion: null, maxElectionId: null, servers: Map { 'cluster0-shard-00-01-j7wis.mongodb.net:27017' => [ServerDescription], 'cluster0-shard-00-02-j7wis.mongodb.net:27017' => [ServerDescription], 'cluster0-shard-00-00-j7wis.mongodb.net:27017' => [ServerDescription] }, stale: false, compatible: true, compatibilityError: null, logicalSessionTimeoutMinutes: null, heartbeatFrequencyMS: 10000, localThresholdMS: 15, commonWireVersion: null }, [Symbol(mongoErrorContextSymbol)]: {} }Tuve el mismo problema pero logré solucionarlo. En su cuenta de MongoDB, verifique la IP que elija para conectar su aplicación.
Si comienza a trabajar en una IP inicial e intenta trabajar con otra dirección IP, no funcionará.
En mongoDB:
NetworkAccess/ (verifique que la IP que registró sea la misma que la que realmente usó). Puede seleccionar: Agregar dirección IP
¿Tenías esta línea en tu index.js app.use(cors()) ?
Intente eliminar esta línea y elimine todo lo que involucre cors.
Si esto no funciona, pruebe la solución de Mehdi Berra.
Puede resolver este problema ingresando a su panel de acceso a la red
Luego haga clic en Agregar dirección IP
& Luego complete 0.0.0.0/0 Luego haga clic en Confirmar
No hagas esto en producción, pero en desarrollo, funcionará
Tuve este problema similar. 'Ir a acceso a la red' -> 'Lista blanca de IP' -> solo puede conectarse a su clúster desde esas direcciones IP, por lo que si su IP no está presente en esa lista
Luego haga clic en el botón 'Agregar dirección IP'-> allí, haga clic en el botón 'Agregar su dirección IP actual'.
Esto probablemente se deba a que la IP de su máquina cambia, no debería suceder en producción, pero para solucionarlo, debe ir al panel de acceso a la red -> Agregar dirección IP y hacer clic en "Agregar esta dirección IP" y listo. para trabajar, hasta que cambie de nuevo.
La solución más votada no funcionará en la mayoría de los casos. Primero debe seguir los pasos de la solución de "Aka" y luego eliminar su carpeta node_modules . Después de eso, simplemente ejecute npm i para reinstalar todas las dependencias y debería estar listo, considerando que tiene las dependencias registradas en el package.json
El principal problema aquí es con Mongodb Atlas . El método que funcionó para mí fue eliminar la dirección IP existente en la sección de red de Mongodb Atlas y agregarla nuevamente.
Creo que si elimina o agrega una nueva dirección IP en la pestaña de acceso a la red de su mongodb, su proyecto no se ejecutará correctamente hasta que no actualice el archivo principal del servidor (index.js). Debido a que muchas veces agregué una nueva dirección IP, no funciona hasta que actualizo index.js
Gracias