Estoy tratando de encontrar una manera de usar req.params como argumento en mi middleware. Tome este código (obviamente roto) por ejemplo:
router.post('/:myParam', checkSchema(schemas[req.params.myParam]), async (req, res, next) => { // do stuff }) El objetivo aquí es que estoy usando express-validator y cargo un esquema dinámico basado en el parámetro que se pasa. El código anterior obviamente está roto porque todavía no tengo el alcance para acceder a la variable req, solo estoy tratando de ilustrar lo que estoy tratando de lograr.
si conoce los posibles parámetros por delante, podría hacer algo como lo siguiente:
router.post("/:myParam", checkSchema("soccer"), async (req, res, next) => {}); //checkSchema.JS const soccerSchema = require("../schemas/soccerSchema"); const swimmingSchema = require("../schemas/swimmingSchema"); module.exports = function (schemaName) { return (req, res, next) => { const schemas = { soccer: soccerSchema, swimming: swimmingSchema }; //You can access it here schemas[schemaName] console.log(schemas[schemaName]); next(); }; };Puede llamar directamente a schemas(req.params.myParam) dentro del middleware checkSchema ya que el middleware tendrá acceso al objeto de solicitud.