In Express, protecting routes means checking if a user is logged in before allowing access. We write a middleware function that looks at req.user. If req.user exists, it calls next() to let the request continue to the route handler. If not, it sends a 401 Unauthorized response and stops. This way, only authorized users reach the route. The execution table shows two cases: one where req.user is missing and the middleware sends 401, and one where req.user exists and the route handler sends a welcome message. Key points are that calling next() passes control forward, and not calling next() stops the request. If middleware always calls next() without checking, unauthorized users can access protected routes. This pattern keeps routes safe with simple checks.