Home > Software design >  Unable to connect to Mongodb from Nodejs
Unable to connect to Mongodb from Nodejs

Time:01-09

I am trying to connect to Mongodb from my first node project.I am using Mongoose to achieve that. However, mongoose.connect() gives me MongoParseError error.

Complete error:

MongoParseError: options connections, models, events, __driver, options, _pluralize, schema, model, plugins, default, mongoose, cast, states, setdriver, set, get, createconnection, connect, disconnect, startsession, pluralize, deletemodel, modelnames, plugin, version, schematype, schematypes, virtualtype, types, query, document, objectid, isvalidobjectid, isobjectidorhexstring, syncindexes, decimal128, mixed, date, number, error, now, casterror, schematypeoptions, mongo, mquery, trusted, skipmiddlewarefunction, overwritemiddlewareresult are not supported

Below is the snippet of my code.

const express = require('express');
const app = express();

const mongoose = require('mongoose');

const dotenv = require('dotenv');
dotenv.config();

app.use(express.json());

//configure mongoose
mongoose.connect(
  process.env.MONGODB_URI,
  mongoose.set('strictQuery', true),
  (err) => {
    if (err) {
      console.log(`Error while connecting: ${err}`);
    } else {
      console.log('Connected to MongoDB');
    }
  }
);

app.use('/', (req, res) => {
  res.send('Welcome to Node js server');
});

app.listen(3001, () => {
  console.log('Node js server is up and running');
});

CodePudding user response:

The strictQuery refers to Mongoose schemas

mongoose.connect(process.env.MONGODB_URI)
  .then(() => console.log('Connected to MongoDB'))
  .catch(err => console.error(`Error while connecting: ${err}`));
);

mongoose.set('strictQuery', true);

CodePudding user response:

You can set to false for now to remove the warning message and make your connection async and listen to it separately.

mongoose.set("strictQuery", false);

mongoose.connection.once("open", () => {
    console.log("Connected to MongoDB!");
})

async function startServer() {
    try {
        await mongoose.connect(process.env.MONGODB_URI);
    } catch (err) {
        console.log(`Error while connecting: ${err}`);
    }
}

startServer().then(() => {
    app.listen(PORT, () => {    //set up your PORT
        console.log(`app is running on port ${PORT}...`)
    });
  • Related