I have implemented an operation which is verifying if data is available in db and then storying the data. For this i have created two methods as follows :
function IfUserExists(userId) {
    logger.info(`Checking If ${userId} exists`);
    return new Promise(resolve => {
        var query = { _id: userId }
        MongoClient.connect(url, function (err, db) {
            if (err) {
                logger.error(err.message);
                db.close();
                resolve({ response: false, Message: err.message });
            }
            var dbo = db.db(database);
            dbo.collection("users").find(query).count(function (err, result) {
                if (err) {
                    logger.error(err.message);
                    db.close();
                    resolve({ response: false, Message: err.message });
                }
                if (result == 1)
                    resolve({ response: true, Message23: `${userId} does exists` });
                else
                    resolve({ response: false, Message: `${userId} does not exists` });
                db.close();
            });
        });
    });
}
async function createForm(userId) {
    return new Promise(async resolve => {
        var IfUserExists_flag = await User.IfUserExists(userId);
        console.log("IfUserExists_flag", IfUserExists_flag);
        if (IfUserExists_flag.response) {
            MongoClient.connect(url, (err, db) => {
                if (err) {
                    logger.error(err.message);
                    db.close();
                    resolve({ response: false, Message1: err.message });
                } else {
                    var dbo = db.db(database);
                    console.log("database", database);
                    var data = { userId: userId, questionAnsId: [] }
                    dbo.collection("Forms").insertOne(data, (err, result) => {
                        if (err) {
                            logger.error(err.message);
                            db.close();
                            resolve({ response: false, Message2: err.message });
                        } else {
                            logger.info(result);
                            resolve({ response: true, Message3: result });
                            db.close();
                        }
                    });
                }
            });
            resolve(IfUserExists_flag);
        } else {
            log.error("Cannot Create Form :" + IfUserExists_flag)
            resolve(IfUserExists_flag);
        }
    });
}
However, even if everything is done properly, its still giving me response from IfUserExists rather then from the createForm. Any idea how to resolve it?
 
    