Recibo el error "MongoParseError: options poolsize, usenewurlparse no son compatibles" cuando ejecuto "nodemon server".
Aquí el código para configurar la conexión mongodb:
import app from "./server.js" import mongodb from "mongodb" import dotenv from "dotenv" dotenv.config() const MongoClient = mongodb.MongoClient const port = process.env.PORT || 8000 MongoClient.connect( process.env.RESTREVIEWS_DB_URI, { poolSize: 50, wtimeout: 2500, useNewUrlParse: true, } ) .catch(err => { console.error(err.stack) process.exit(1) }) .then(async client => { app.listen(port, () => { console.log(`listening on port ${port}`) }) })use esta configuración para mangosta
const express = require('express'); const mongoose = require('mongoose'); mongoose.Promise = global.Promise; mongoose.set('useNewUrlParser', true); mongoose.set('useFindAndModify', false); mongoose.set('useCreateIndex', true); mongoose.set('useUnifiedTopology', true); mongoose.connect(your mongodb URI).then(()=> { app.listen(PORT, () => { console.log(`Listening on port` + PORT); }) }).catch((e) => {console.log(e)})y app.listen no es una función asíncrona, no necesita usar async para eso
Algunas de las opciones de MongoClient han quedado obsoletas.
MongoClient.connect( process.env.RESTREVIEWS_DB_URI, { maxPoolSize: 50, wtimeoutMS: 2500, useNewUrlParser: true } ).catch(err => { console.error(err.stack) process.exit(1) }La versión dejó de admitir poolsize, wtimeout y useNewUrlParse. Reemplace su código con mi edición.
import app from "./server.js"; import mongodb from "mongodb" import dotenv from "dotenv" dotenv.config() const MongoClient = mongodb.MongoClient const port = process.env.PORT || 8000 MongoClient.connect( process.env.RESTREVIEWS_DB_URI, { maxPoolSize:50, wtimeoutMS:2500, useNewUrlParser:true } ) .catch(err => { console.error(err.stack) process.exit(1) }) .then(async client => { app.listen(port, () => { console.log('listening on port '+port) }) })const mongoose = require('mongoose'); require('dotenv').config(); const user = process.env.mongoUser; const pass = process.env.mongoPass; const url = `mongodb+srv://${user}:${pass}@cluster0.asqnt.mongodb.net/MyDB`; mongoose.connect(url, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true }) .then(console.log('connecting')) .catch(err => console.log(`error: ${err}`))Justo ahora estaba tratando de poner en marcha el servidor cuando me di cuenta de que:
{ useNewUrlParser: true, useUnifieldTopology: true, useFindAndModify: false }Han quedado en desuso. Y mirando esta publicación la que ha funcionado es la de @Jinoy Varghese. Les dejo el mi codigo de la configuracion mongol para conectar la base de datos.
const mongoose = require('mongoose') require('dotenv').config({ path: '.env' }) const connectDB = async () => { try { await mongoose.connect(process.env.DB_MONGO, { maxPoolSize: 50, wtimeoutMS: 2500, useNewUrlParser: true }) console.log('DB connected ') } catch (err) { console.log(err) process.exit(1) } } module.exports = connectDBDespués de los cambios en el buceador nativo de MongoDB a 4.x, solo necesita cambiar la interfaz de MongoClientOptions :
Tu tienes esto:
MongoClient.connect( process.env.RESTREVIEWS_DB_URI, { poolSize: 50, // maxPoolSize wtimeout: 2500, // wtimeoutMS useNewUrlParse: true, // feel free to remove, no longer used by the driver. } )necesitas:
MongoClient.connect( process.env.RESTREVIEWS_DB_URI, { maxPoolSize: 50, wtimeoutMS: 2500, } )Tuve el mismo problema y así es como lo logré, en su código, reemplace
{ poolSize: 50, wtimeout: 2500, useNewUrlParse: true, }con
{ maxPoolSize: 50, wtimeoutMS: 2500, useNewUrlParser: true, }