DEV Community

loading...

Help With Mongoose

cdthomp1 profile image Cameron Thompson Updated on ・1 min read

Hello All,

I am running into this warning that is driving me crazy.
Here is the warning:

(node:38419) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
(Use `node --trace-deprecation ...` to show where the warning was created)
MongoDB Connect: *************.zzkco.mongodb.net
Enter fullscreen mode Exit fullscreen mode

and here is my code:

const mongoose = require('mongoose');

const connectDB = async () => {
    try {
        mongoose.set('useUnifiedTopology', true);
        mongoose.set('useNewUrlParser', true);
        const conn = await mongoose.connect(process.env.MONGO_URI)
        console.log(`MongoDB Connect: ${conn.connection.host}`)

    } catch (err) {
        console.error(`Error: ${err.message}`);
        process.exit(1);
    }
}

module.exports = connectDB
Enter fullscreen mode Exit fullscreen mode

Any help that you can offer is appreciated!

Discussion (10)

pic
Editor guide
Collapse
buttercubz profile image
Erick Sosa Garcia

try with this:

const mongoose = require('mongoose');

const connectDB = async () => {
 try {
     const conn = await mongoose.connect(process.env.MONGO_URI,
                       {
                          useNewUrlParser: true,
                          useUnifiedTopology: true,
                       });
     console.log(`MongoDB Connect: ${conn.connection.host}`)

    } catch (err) {
        console.error(`Error: ${err.message}`);
        process.exit(1);
    }
}

module.exports = connectDB
Enter fullscreen mode Exit fullscreen mode
Collapse
cdthomp1 profile image
Cameron Thompson Author

I get this warning

(node:781) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:781) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
MongoDB Connect: spydrwebdev-shard-00-00.zzkco.mongodb.net
Enter fullscreen mode Exit fullscreen mode
Collapse
buttercubz profile image
Erick Sosa Garcia

what version of mongoose are you using?

Thread Thread
cdthomp1 profile image
Cameron Thompson Author

I am using version 5.11.9

Thread Thread
buttercubz profile image
Erick Sosa Garcia

it's weird, I just installed mongoose and executed the same example and I don't get the warning
i'm using node 15.0.1

Thread Thread
cdthomp1 profile image
Cameron Thompson Author

I have node 14.15.1. I will restart my machine and see if that fixes it.

Thread Thread
cdthomp1 profile image
Cameron Thompson Author • Edited

I reset my machine and installed the latest version of Node. Still receiving the warning.

Thread Thread
esix34238932 profile image
Esix

const mongoose = require('mongoose');

const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI,
{
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
});
console.log(MongoDB Connect: ${conn.connection.host})

} catch (err) {
    console.error(`Error: ${err.message}`);
    process.exit(1);
}
Enter fullscreen mode Exit fullscreen mode

}

module.exports = connectDB

Collapse
hellnar profile image
Stas Klymenko

Here is a page from Mongoose about this kind of errors:
mongoosejs.com/docs/deprecations.html

I've used all these 4 settings and the problem was solved:

mongoose.set('useNewUrlParser', true);
mongoose.set('useFindAndModify', false);
mongoose.set('useCreateIndex', true);
mongoose.set('useUnifiedTopology', true);

Collapse
cdthomp1 profile image
Cameron Thompson Author

I have also tried this and still get the warning.