DEV Community

STEVE ADOLF
STEVE ADOLF

Posted on

I Really like Middleware in NodeJs/Express.

Middleware to attach a user to the request object because nodejs/express does not do that for you out of the box.

Say i have a controller that need to check whether a user is of certain role in order to let them access a certain resource. Then this middleware will be helpful as it makes a user available to this function. Then i can do something like user.role === <some_role> ? do_something: do_this

Here is how i might implement it.

/**
 * @param {Request} req
 * @param {Response} res
 */
const userIsAuthenticatedMiddleware = async (req, res, next) => {
  const token = req.headers["authorization"]?.split(" ")[1];
  if (!token) return res.status(401).json({ message: "Access denied" });

  try {
    jwt.verify(token, process.env.JWT_SECRET, (error, user) => {
      if (error) return res.status(401).json({ message: "Wrong token" });
      req.user = user;
      next();
    });
  } catch (error) {
    return res.status(500).json({ message: "Internal Server Error" });
  }
};

Enter fullscreen mode Exit fullscreen mode

Image of Datadog

The Future of AI, LLMs, and Observability on Google Cloud

Datadog sat down with Google’s Director of AI to discuss the current and future states of AI, ML, and LLMs on Google Cloud. Discover 7 key insights for technical leaders, covering everything from upskilling teams to observability best practices

Learn More

Top comments (4)

Collapse
 
joni_singh_e68a2d94d1aa98 profile image
Joni Singh

Middleware in Node.js/Express enhances request handling, just like a reliable Jeddah Airport to Makkah taxi ensures a smooth and stress-free journey for pilgrims. Just as middleware streamlines web processes for efficiency, taxi services provide comfort, safety, and reliability, making travel from Jeddah Airport to Makkah seamless and hassle-free.

Collapse
 
joni_singh_e68a2d94d1aa98 profile image
Joni Singh

Middleware in Node.js/Express enhances request handling, just like a reliable Umrah taxi service ensures a smooth and stress-free journey for pilgrims. Just as middleware optimizes web performance, taxi services provide comfort, safety, and efficiency, making Umrah travel seamless and hassle-free.

Collapse
 
joni_singh_e68a2d94d1aa98 profile image
Joni Singh

Middleware in Node.js/Express plays a crucial role in handling requests efficiently, just like a Jeddah to Makkah taxi ensures a smooth and seamless journey for travelers. Just as middleware processes and modifies requests before reaching the final destination, taxi services optimize the travel experience by offering comfort, safety, and reliability. Whether you're customizing your ride preferences or ensuring a hassle-free transfer, both middleware in web development and taxi services share the goal of enhancing efficiency and delivering a seamless experience.

Collapse
 
joni_singh_e68a2d94d1aa98 profile image
Joni Singh • Edited

Enhanced User Management: Middleware allows the backend to authenticate users and control access to premium or admin-level features in apps like Instander APK.
Premium Features: Ensure that only users with the "premium" role can access advanced features such as high-quality media downloads.
Security: Middleware acts as a checkpoint to verify the legitimacy of users and their roles before processing sensitive requests.
This approach provides a scalable way to handle user roles and permissions for an app like Instander APK ensuring a secure and user-friendly experience.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay