hoangvvo / next-connect

The TypeScript-ready, minimal router and middleware layer for Next.js, Micro, Vercel, or Node.js http/http2
https://www.npmjs.com/package/next-connect
MIT License
1.63k stars 65 forks source link

MongoError: MongoClient must be connected before calling MongoClient.prototype.db #114

Closed IRediTOTO closed 3 years ago

IRediTOTO commented 3 years ago

Hi, I get this error MongoError: MongoClient must be connected before calling MongoClient.prototype.db

in my middleware database.js Have this code

export const mongoDb = async () => {
   try {
      if (!global.mongo.client) {
         global.mongo.client = new MongoClient(process.env.MONGODB_URI, {
            useNewUrlParser: true,
            useUnifiedTopology: true,
         });
         await global.mongo.client.connect();
         console.log("Reconnect to db");
      }

      console.log("use Database ");
      return global.mongo.client.db(process.env.DB_NAME);
   } catch (error) {
      if (error) {
         console.error("error 6c1989f1-025d-4ac6-86b3-e75463a9378d", error);
      }
   }
};

I use it in

export async function getStaticProps(context) {
const db = await mongoDb();
const items = await getItems(db, 0, 8);

Everything fine but it crash on heroku, everything ran very well before... Did I do something wrong?

IRediTOTO commented 3 years ago

my fail, deploy to 3 server :)