Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
¿Por qué la URL reconocida por Express.js no es como las URL habituales que vemos?

¿Por qué una URL reconocible para Express.js no es como las URL habituales que vemos?

Por ejemplo: Express.js reconocerá esta URL (http://localhost:3000/things/0) donde id=0 si realizo esta solicitud GET:

 app.get('/things/:id', (req, res) => { // Do somethihng });

Pero esta URL (http://localhost:3000/things/?id=0), que se parece más a las URL habituales que vemos, no funcionará para la misma solicitud GET anterior.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

(http://localhost:3000/things/?id=0) que se parece más a las URL habituales

Es un marco y no hace lo que usted y yo pensamos. Tiene un conjunto de reglas. Hablando de las mejores prácticas para la API RESTFUL , el diseño es que los parámetros de ruta ( /:id ) se usan para identificar un recurso o recursos específicos, mientras que los parámetros de consulta ( ?id ) se usan para ordenar/filtrar esos recursos. Entonces, para /things/?id=0 , deberíamos usar parámetros de consulta.

vemos que no funcionará para la misma solicitud GET anterior.

No funcionará de esa manera. Para obtener parámetros de consulta, use algo como

 app.get('/things', (req, res) => { let id = req.query.id; // here you can get id. });

PARÁMETROS DE CONSULTA: ¿Cómo obtener variables GET (cadena de consulta) en Express.js en Node.js?

ACERCA DE URL: https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_URL

about 4 years ago · Juan Pablo Isaza Report

0

Por lo tanto, las "URL normales" aparentemente están en el ojo del espectador, ya que en realidad solo hay estilos diferentes, ninguno de los cuales es más normal que el otro.

Hay un par de formas de pasar parámetros en una URL.

#1 - Puedes incrustarlo en la ruta de la URL

 https://someserver/things/0 https://contacts.google.com/person/c3429579852656514228

Esto se conoce como un diseño RESTFUL. Estas URL contienen un sustantivo y luego una identificación que identifica a cuál de esos sustantivos se refiere la URL.

#2 - Puedes poner la parte variable de la URL en un parámetro de consulta

Para esas mismas dos URL anteriores, eso podría verse así:

 https://someserver/things?id=0 https://contacts.google.com/person?id=c3429579852656514228

Hay razones válidas para ambos diseños según las circunstancias e incluso hay casos en los que combina los dos (agregue parámetros de consulta opcionales a los diseños de API tranquilos en la opción n. ° 1. Ninguno es "normal": son formas diferentes de diseñar sus URL .

Express le permite usar cualquiera de los dos. Para parámetros tranquilos que están en la ruta de la URL, usa la sintaxis :id y accede al valor en req.params.id :

 app.get('/things/:id', (req, res) => { console.log(req.params.id); res.send(req.params.id); });

Para los parámetros de consulta, no los define en la ruta de la ruta rápida. En cambio, Express analiza cualquier parámetro de consulta que exista en cualquier ruta y los pone a disposición en req.query .

 // expecting /things?id=789&sort=alpha app.get('/things', (req, res) => { console.log(req.query.id); // "789" console.log(req.query.sort); // "alpha" res.send(req.query.id); });

Cualquier parámetro de consulta que esté presente en la URL se agregará al objeto req.query .

Tenga en cuenta que los parámetros de consulta a menudo se consideran opcionales y, por lo tanto, no los codifica en su definición de ruta. Si desea solicitar un parámetro de consulta específico, debe verificar si está allí y, de lo contrario, proporcionar alguna respuesta de error o llamar a next() para continuar con el enrutamiento a otros controladores de solicitudes.


FYI, hay otro estilo que a menudo usa código del lado del cliente para ayudar a construir esa página y también coloca argumentos de URL en una etiqueta hash, pero lo dejaré para otro día.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!