NODEJS REST API CRUD MIDDLEWARES (JWT AUTH, JOI) MULTER UPLOADS IMAGE LAYERED ARCHITECTURE NODEMAILER WINSTON REDIS