Home > Enterprise >  How to fix UnhandledPromiseRejectionWarning: TypeError?
How to fix UnhandledPromiseRejectionWarning: TypeError?

Time:05-05

So I am making a web app using Express.JS and MongoDB and when I try to run it locally , it works, but when I run it with my aws Ubuntu 20.04 machine it gives me the following error:

(node:13452) UnhandledPromiseRejectionWarning: TypeError: [objectOptions,urlOptions,exports.DEFAULT_OPTIONS].flatMap is not a function
    at parseOptions (/home/ubuntu/tylertv/node_modules/mongodb/lib/connection_string.js:258:77)
    at new MongoClient (/home/ubuntu/tylertv/node_modules/mongodb/lib/mongo_client.js:62:63)
    at Promise (/home/ubuntu/tylertv/node_modules/mongoose/lib/connection.js:784:16)
    at new Promise (<anonymous>)
    at NativeConnection.Connection.openUri (/home/ubuntu/tylertv/node_modules/mongoose/lib/connection.js:781:19)
    at _mongoose._promiseOrCallback.cb (/home/ubuntu/tylertv/node_modules/mongoose/lib/index.js:342:10)
    at Promise (/home/ubuntu/tylertv/node_modules/mongoose/lib/helpers/promiseOrCallback.js:32:5)
    at new Promise (<anonymous>)
    at promiseOrCallback (/home/ubuntu/tylertv/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:10)
    at Mongoose._promiseOrCallback (/home/ubuntu/tylertv/node_modules/mongoose/lib/index.js:1181:10)
(node:13452) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:13452) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I have no clue why this is doing this all I have installed is mongodb,npm, and node.

https://www.github.com/tttylerr/tylertv

^ My source code is server.js mainly

CodePudding user response:

This could happen by several reasons:

  1. Do you have MongoDB installed on you AWS machine?
  2. Do versions of Node.js/NPM/MongoDB mismatch on your local machine and on AWS machine?

P.S. If that error occurs on startup, then the error can be interpreted as - "Couldn't connect to MongoDB instance". Check that stuff related to Mongo.

CodePudding user response:

mongoose.connect() returns a promise, see docs, that you're not handling.

Handling the exception will make your code more robust and give you a more meaningful error message:

mongoose.connect('mongodb://localhost:27017/login', {
    useNewUrlParser: true,
    useUnifiedTopology: true
}).catch((e) => {console.log(e)});

I suspect that you haven't set up your MongoDB on your AWS machine.

  • Related