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

165
Views
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 answers
Answer question

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 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!