MERN => Mongo, Express, React, NodeJS. Which is an evolution (as far as I can tell on) MEAN => Mongo, Express, Angular, NodeJS.
But really, NodeJS is unnecessary in the acronym, but is used to make a backronym. Really - how do you run Express without NodeJS? Maybe it’s so the backronym wasn’t “MAN”.
Also interesting in comparison to older forms of this style of stack description:
* LAMP - Linux Apache MySQL PHP/Python/Perl
* LEPP - Linux Nginx PostgreSQL PHP/Python/Perl
MEAN and MERN do not specify the OS and swap more open ended possibilities for specific frameworks. I guess LEMJ doesn't roll off the tongue very well.
And while this was submitted with MERN in the title, the README omits Express but mentions Socket.io.
Instead of just validating the extension of the user-uploaded image, you can also determine the image type by looking at the first two bytes of the file.
It's also nice to move those database calls into a db.js module. That way you can reuse them. And it cleans up the route handlers to just business logic.
I didn't read enough code to have any more advice.
But really, NodeJS is unnecessary in the acronym, but is used to make a backronym. Really - how do you run Express without NodeJS? Maybe it’s so the backronym wasn’t “MAN”.