Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

171
Vistas
No se pueden leer los parámetros de URL del servidor json cuando los datos recibidos son una matriz

Estoy tratando de construir una API falsa con json-server y tengo un problema. No sé si me estoy perdiendo algo o si simplemente me encontré con un error.

Básicamente, si envío un parámetro de URL cuando solicito datos recibidos como un solo objeto, puedo leer mi parámetro sin problemas cuando intento representar esos datos.

Pero si los datos que recibo son una matriz, me quedo indefinido al intentar leer ese parámetro.

Estos son mis archivos (no importa la lógica detrás de esto, simplifiqué las cosas para reducir la información innecesaria).

servidor.js

 const jsonServer = require('json-server') const server = jsonServer.create() const router = jsonServer.router(require('./db.js')()) const middlewares = jsonServer.defaults() server.use(middlewares) server.use(jsonServer.bodyParser) router.render = (req, res) => { console.log("User try query: " + req.query.user) console.log("User try param: " + req.params['user']) if (req.url.startsWith('/slack_users_info')) { res.jsonp({ user: res.locals.data }) } else if (req.url.startsWith('/slack_users_info2')) { res.jsonp({ user: res.locals.data }) } else { res.jsonp(res.locals.data) } } server.use(router) // Run server on indicated port. server.listen(port = 3000, () => { console.log('JSON Server is running') console.log('http://localhost:' + port) })

db.js

 var faker = require('faker'); module.exports = function () { var data = { slack_users_info: slack_users_info(), slack_users_info2: slack_users_info2() } return data; } function slack_users_info() { subdata = [] for (var i = 0; i < 10; i++) { subdata.push({ id: "user_id_" + i, }) } return subdata; } function slack_users_info2() { subdata = { id: "user_id" } return subdata; }

Estoy corriendo con npm start .

Si solicito la matriz, obtengo undefined: GET http://localhost:3000/slack_users_info?user=user_id_0 Luego obtengo:

 User try query: undefined User try param: undefined

Si solicito el objeto único, obtengo el parámetro esperado: GET http://localhost:3000/slack_users_info2?user=user_id_0 Luego obtengo:

 User try query: user_id_0 User try param: undefined

En ambos casos, el cuerpo de la respuesta se recibe correctamente, simplemente no puedo leer el parámetro en el primer caso.

¿Hay alguna razón para esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Mirando https://www.npmjs.com/package/json-server#generate-random-data parece que necesita devolver un objeto, pero puede incluir su matriz dentro de ese objeto.

Por ejemplo, intente:

 function slack_users_info() { const data = { users: [] } for (var i = 0; i < 10; i++) { data.users.push({ id: "user_id_" + i, }) } return data; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda