Files
2021-10-27 21:47:35 +05:30

2.6 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7fb2367417b2b2512bf8 Obtén datos de las peticiones POST 2 301511 get-data-from-post-requests

--description--

Monta un manejador POST en la ruta /name. Es la misma ruta de antes. Hemos preparado un formulario en la página principal html. Se enviarán los mismos datos del ejercicio 10 (Query string). Si el "body-parser" está configurado correctamente, debe encontrar los parámetros en el objeto req.body. Echa un vistazo al ejemplo de la biblioteca:

route: POST '/library'
urlencoded_body: userId=546&bookId=6754
req.body: {userId: '546', bookId: '6754'}

Responde con el mismo objeto JSON que antes: {name: 'firstname lastname'}. Prueba si tu endpoint funciona usando el formulario html que proporcionamos en la página principal de la aplicación.

Nota: Hay varios métodos de http diferentes a GET y POST. Y por convención hay una correspondencia entre el verbo http y la operación que se va a ejecutar en el servidor. La asignación convencional es:

POST (a veces PUT): Crea un nuevo recurso usando la información enviada con la solicitud,

GET: Lee un recurso existente sin modificarlo,

PUT o PATCH (a veces POST): Actualiza un recurso usando los datos enviados,

DELETE => Elimina un recurso.

También hay un par de otros métodos que se utilizan para negociar una conexión con el servidor. A excepción de GET, todos los demás métodos mencionados anteriormente pueden tener un payload (es decir, los datos en el cuerpo de la solicitud). El middleware body-parser también funciona con estos métodos.

--hints--

Prueba 1: El endpoint de tu API debe responder con el nombre correcto

(getUserInput) =>
  $.post(getUserInput('url') + '/name', { first: 'Mick', last: 'Jagger' }).then(
    (data) => {
      assert.equal(
        data.name,
        'Mick Jagger',
        'Test 1: "POST /name" route does not behave as expected'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );

Prueba 2: El endpoint de tu API debe responder con el nombre correcto

(getUserInput) =>
  $.post(getUserInput('url') + '/name', {
    first: 'Keith',
    last: 'Richards'
  }).then(
    (data) => {
      assert.equal(
        data.name,
        'Keith Richards',
        'Test 2: "POST /name" route does not behave as expected'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );

--solutions--

/**
  Backend challenges don't need solutions, 
  because they would need to be tested against a full working project. 
  Please check our contributing guidelines to learn more.
*/