Implemente una función fetchDataForUser, que obtiene datos de una API JSON remota y luego devuelve una parte de ellos.
Dado que se trata de una llamada de red, deberá ser una función asíncrona y devolver los datos a través de una devolución de llamada.
La devolución de llamada debe llamarse con dos argumentos:
*/
const fetchDataForUser = function (url, username, callback) { request(url, (err, res, body) => { if (err) { callback(err, null); } const data = JSON.parse(body); for (let key in data) { console.log(data[key]); if (data[key] === username){ return key } callback(null, data); }); };Devuelve la lista correcta de datos del archivo json: usuarios: { mr_robot: { victorias: 5, pérdidas: 2 }, teddy_b: { victorias: 0, pérdidas: 3 } }
Pero necesito recuperar elementos específicos al ingresar el nombre de usuario: "Mr Robot", por ejemplo
+ "losses": 2 + "wins": 5Código de controlador de prueba
fetchDataForUser(url, 'mr_robot')Puedes hacer esto sin un bucle for.
En mi siguiente ejemplo, la línea que realmente importa es la información del usuario:
let userdata = (data["users"][username]) ? data["users"][username]: [];Básicamente, busca ver si el nombre de usuario existe en los datos, si es así, devuelve los datos de ese usuario, si no, devuelve una matriz vacía.
let data = { "users": { "mr_robot": { "wins": 5, "losses": 2 }, "teddy_b": { "wins": 0, "losses": 3 } } }; let username = "mr_robot"; let userdata = (data["users"][username]) ? data["users"][username]: []; console.log(userdata)