Cómo utilizar el objeto req en Express
Introducción
Abreviatura de request
, el req
objeto es la mitad del ciclo request
y response
para examinar llamadas desde el lado del cliente, realizar solicitudes HTTP y manejar datos entrantes, ya sea en una cadena o en un objeto JSON.
En este artículo aprenderá sobre el req
objeto en Express.
Prerrequisitos
Para seguir este artículo necesitarás:
- Se recomienda tener conocimientos generales de Node.js, pero no es obligatorio. Para obtener más información sobre Node.js, consulta nuestra serie Cómo codificar en Node.js.
- Un conocimiento general de las solicitudes HTTP .
Gestión de datos del lado del cliente
Los servidores Express reciben datos del lado del cliente a través del req
objeto en tres instancias: los req.params
objetos , req.query
y .req.body
El req.params
objeto captura datos en función del parámetro especificado en la URL. En su index.js
archivo, implemente una GET
solicitud con un parámetro de '/:userid'
:
índice.js
// GET https://example.com/user/1app.get('/:userid', (req, res) = { console.log(req.params.userid) // "1"})
El req.params
objeto le indica a Express que muestre el resultado de la identificación de un usuario a través del parámetro '/:userid'
. Aquí, la GET
solicitud https://example.com/user/1
con el parámetro designado registra en la consola una identificación de "1"
.
Para acceder a una cadena de consulta de URL, aplique el req.query
objeto para buscar, filtrar y ordenar datos. En su index.js
archivo, incluya una GET
solicitud a la ruta '/search'
:
índice.js
// GET https://example.com/search?keyword=great-whiteapp.get('/search', (req, res) = { console.log(req.query.keyword) // "great-white"})
Al utilizar el req.query
objeto, se comparan los datos cargados desde el lado del cliente en una consulta condicional. En este caso, la GET
solicitud a la '/search'
ruta informa a Express que debe hacer coincidir las palabras clave en la consulta de búsqueda con https://example.com
. El resultado de agregar la .keyword
propiedad al req.query
objeto se registra en la consola "great-white"
.
El req.body
objeto le permite acceder a los datos en una cadena o un objeto JSON desde el lado del cliente. Generalmente, se utiliza el req.body
objeto para recibir datos a través POST
de PUT
solicitudes en el servidor Express.
En su index.js
archivo, establezca una POST
solicitud a la ruta '/login'
:
// POST https://example.com/login//// {// "email": "user@example.com",// "password": "helloworld"// }app.post('/login', (req, res) = { console.log(req.body.email) // "user@example.com" console.log(req.body.password) // "helloworld"})
Cuando un usuario ingresa su correo electrónico y contraseña en el lado del cliente, el req.body
objeto almacena esa información y la envía a su servidor Express. Al iniciar sesión req.body
en la consola, el objeto obtiene el correo electrónico y la contraseña del usuario.
Ahora que ha examinado las formas de implementar el req
objeto, veamos otros enfoques para integrarlo en su servidor Express.
Examinar la URL con reqpropiedades
Las propiedades del req
objeto también pueden devolver las partes de una URL según su anatomía. Esto incluye protocol
, hostname
, path
, originalUrl
, y subdomains
.
En su index.js
archivo, establezca una GET
solicitud a la '/creatures'
ruta:
índice.js
// https://ocean.example.com/creatures?filter=sharksapp.get('/creatures', (req, res) = { console.log(req.protocol) // "https" console.log(req.hostname) // "example.com" console.log(req.path) // "/creatures" console.log(req.originalUrl) // "/creatures?filter=sharks" console.log(req.subdomains) // "['ocean']"})
Puede acceder a varias partes de la URL mediante propiedades integradas como .protocol
y .hostname
. Al registrar el req
objeto con cada una de las propiedades, se obtiene la anatomía de la URL.
reqAnálisis de propiedades adicionales
El res
objeto consta de propiedades para maximizar sus llamadas a solicitudes HTTP.
Para acceder al método HTTP, ya sea GET
, POST
, PUT
o DELETE
, utilice la .method
propiedad de su req
objeto. En su index.js
archivo, implemente una DELETE
solicitud a un punto final anónimo:
índice.js
app.delete('/', (req, res) = { console.log(req.method) // "DELETE"})
La .method
propiedad devuelve el método de solicitud HTTP actual. En este caso, la consola registra un DELETE
método.
Para los encabezados enviados a su servidor, agregue el método .header()
a su req
objeto. Establezca una POST
solicitud en la ruta '/login'
en su index.js
archivo:
índice.js
app.post('/login', (req, res) = { req.header('Content-Type') // "application/json" req.header('user-agent') // "Mozilla/5.0 (Macintosh Intel Mac OS X 10_8_5) AppleWebKi..." req.header('Authorization') // "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."})
El req.header()
método devolverá el tipo de encabezado, como Content-Type
y Authorization
. El argumento req.header()
no distingue entre mayúsculas y minúsculas, por lo que puede usar req.header('Content-Type')
y req.header('content-type')
de forma intercambiable.
Si la ha agregado cookie-parser
como dependencia en su servidor Express, la req.cookies
propiedad almacenará valores de su analizador. En su index.js
archivo, establezca una instancia de req.cookies
la propiedad y aplíquela sessionDate
:
índice.js
// Cookie sessionDate=2019-05-28T01:49:11.968Zreq.cookies.sessionDate // "2019-05-28T01:49:11.968Z"
Observe el resultado devuelto desde la fecha de sesión de una cookie cuando se llama desde el req
objeto.
Conclusión
Express proporciona propiedades integradas para utilizar el req
objeto como parte del request
ciclo para manejar solicitudes HTTP y datos del lado del cliente. Si desea ver la documentación oficial, req
visite la documentación oficial de Express.js .
Deja una respuesta