UnhandledPromiseRejectionWarning: Unhandled promise rejection. When using Pusher for real time mongoDb

Viewed 303

I'm trying to make my mongodb realtime using pusher in my node-express app and react frontend app. After googling forours I couldn't find anything that solved my problem but I did get to know some things like when I don't attach an image in my Post when submitting my form, it listens and updates correctly but when I do attach an image in my Post then it gives my server error:

(node:1344) UnhandledPromiseRejectionWarning: Error
    at new RequestError (E:\Web Development\Simple Social Media App using MERN stack\backend\node_modules\pusher\lib\errors.js:13:16)
    at E:\Web Development\Simple Social Media App using MERN stack\backend\node_modules\pusher\lib\requests.js:61:17
    at processTicksAndRejections (internal/process/task_queues.js:93:5)      
(node:1344) 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(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 4)

This is my node-express code to listen to changes:

mongoose.connection.once("open", () => {
    console.log("DB Connected !");
    
    const changeStream = mongoose.connection.collection("users").watch();
    
    changeStream.on("change", (change) => {
        
        if(change.operationType === "insert"){
            console.log("Triggering pusher **POST CREATED**");
            const postDetails = change.fullDocument;
            pusher.trigger("users", "inserted", {
                author: postDetails.author,
                message: postDetails.message,
                imageFile: postDetails.imageFile
            })
        } else if(change.operationType === "delete"){
            console.log("Triggering pusher **POST DELETED**");
            pusher.trigger("users", "deleted")
        }   
        else {
            console.log("Unknown trigger from pusher !");
        }
    })
})

This is my react app code:

const getData = async () => {
        const allPosts = await getAllPosts();
        setPosts(allPosts);
    }
useEffect(() => {
        const pusher = new Pusher('this is my id', {
            cluster: 'ap2'
          });
          const channel = pusher.subscribe("users");
          channel.bind('inserted', () => {
            getData();
          });
    }, [])

These are my middlewares:

app.use(express.json({limit:'50mb'}));
app.use(cors());

As said earlier, the problem only occurs when there is an image in my Post (I think maybe because of image size), otherwise if i do not include image, it will happily fetch newly posted data from server and refresh without reloading the whole app !

0 Answers
Related