Reemplazo para req.param () que está en desuso en Express 4

Estamos migrando de ExpressJS 3 a ExpressJS 4, y notamos que las siguientes API están en desuso:

req.param(fieldName) req.param(fieldName, defaultValue) 

¿Existe un middleware que devuelva estas API, como otras API que fueron “externalizadas” de Express a módulos independientes?

EDITADO: Aclaración: la necesidad es una API que proporcione un acceso genérico abstraído a un parámetro, independientemente de si es un parámetro de ruta, un parámetro de cadena de consulta o un campo de cuerpo.

Basado en la Documentación Express, deberíamos usar así

En expreso 3

 req.param(fieldName) 

En expreso 4

 req.params.fieldName 

Personalmente prefiero req.params.fieldName lugar de req.param(fieldName)

¿Por qué querrías traerlo de vuelta? Hay una razón por la que está en desuso y, como tal, probablemente debería alejarse de él.

La discusión sobre por qué están en desuso de la API está disponible en su rastreador de problemas como # 2440 .

La función es una forma rápida y sucia de obtener un valor de parámetro de req.params , req.body o req.query . Esto, por supuesto, podría causar problemas en algunos casos, por lo que lo están eliminando. Mira la función por ti mismo aquí .

Si solo está utilizando la función para los parámetros de URL, puede simplemente reemplazarla con esta req.query['smth'] or 'default' para verificar si es req.query['smth'] or 'default' :

 var param_old = req.param('test', 'default'); var param_new = req.query['test'] || 'default'; 

(Tenga en cuenta que una cadena vacía se evalúa como false , por lo que en realidad no son iguales al 100%. Lo que quiere, por supuesto, depende de usted, pero en su mayor parte no debería importar).

Ok, después de leer los hilos dados en las referencias de @Ineentho, decidimos dar la siguiente respuesta:

https://github.com/osher/request-param

Un middleware connect / express para habilitar la API req.param (nombre, predeterminado) en desuso en express 4

El middleware no solo devuelve la funcionalidad de Goo’old. También le permite personalizar el orden de las colecciones desde las que se recuperan los parámetros , tanto como regla predeterminada, como por llamada 🙂

¡Que te diviertas!