• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

221
Vistas
How to conditionally include a sub-app with Express?

I'm using a library called Grant in my application. Previously I have included it following the examples in the readme linked above, however I now have the need to conditionally include it and I can't seem to make it work.

How it worked before

const grant = new Grant(grantConfig);
app.use(grant);

I've done conditional middleware in Express before, so I thought including Grant wouldn't be a problem.

How I Tried (doesn't work)

const grant = new Grant(grantConfig);

app.use((req, res, next) => {
    if (someBooleanVariable) {
        next();
    } else {
        grant(req, res, next);
    }
});

So this doesn't work. I think it may have something to do with Grant being an instance of Express versus just a regular middleware function, but I'm not sure. You can see how Grant is implemented here. The Express docs say that it should be treated the same, but I might also be misunderstanding them.

Note: I need this to work on per-request basis, hence the middleware style approach.

almost 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

If you want to use a particular middleware on only a subset of routes:

// On a single route:
app.get('/some/route', grant, function(req, res) {
  ...
});

// On a set of routes with a particular prefix:
app.use('/api', grant, apiRouter);

// On a specific router:
let apiRouter = express.Router();

apiRouter.use(grant);
apiRouter.get(...);
almost 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda