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

242
Views
TypeError: no se puede leer la propiedad 'get' de undefined - node.js - url params

Estoy tratando de obtener ciertos parámetros de mi solicitud de obtención del lado del cliente (que provienen de la entrada del usuario), para alimentar una API y obtener una solicitud que envío a mi servidor.

Recibo este error cuando uso .get en mi variable search_params. Estoy usando el paquete node.js 'URL'.

no estoy seguro de por qué no está definido, seguí esta guía para encontrar una solución a lo que estoy tratando de resolver - 1

Código a continuación: (Comenté las dos líneas que causan el error para que sea más fácil de ver)

 const axios = require('axios'); const router = require('express').Router(); const url = require('url'); require('dotenv').config(); const bamboo_api_key = process.env.BAMBOO_API_KEY; const config = { headers: { 'Accept':'application/json' } }; router.get('/bamboo/absencees', (req, res) => { const full_url = req.protocol + '://' + req.get('host') + req.originalUrl; const search_params = full_url.searchParams; // const start = search_params.get('start') // const end = search_params.get('end') console.log("full url: ", fullUrl); console.log(end); console.log(sart); axios.get('https://'+bamboo_api_key+':x@api.bamboohr.com/api/gateway.php/velocitypartners/v1/time_off/whos_out/'+req.query.params, config) .then((response) => { console.log(response) console.log(req.query.params) res.send(response.data) }) .catch(error => { console.log(error) }); }) module.exports = router;
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Por lo que veo, full_url es solo una cadena concatenada que obviamente no tiene ningún método/atributo searchParams como lo tendría un objeto.

Entonces sabemos que full_url.searchParams no está definido. Esto evaluaría a

 const search_params = undefined

lo que resulta en su problema.

¿Usaste un depurador? Sería útil ver cómo se ve full_url durante el tiempo de ejecución. No obstante, ser una cadena debería ser el problema aquí.

about 4 years ago · Juan Pablo Isaza Report

0

Hay una pequeña cosa que necesita saber y agregar. full_url es una cadena que no tiene searchParams. Entonces, conviértalo en un objeto URL y use sus métodos.

 const axios = require('axios'); const router = require('express').Router(); const url = require('url'); require('dotenv').config(); const bamboo_api_key = process.env.BAMBOO_API_KEY; const config = { headers: { 'Accept':'application/json' } }; router.get('/bamboo/absencees', (req, res) => { const full_url = req.protocol + '://' + req.get('host') + req.originalUrl; const myURL = new URL(full_url); // make it an URL object to use its methods const search_params = myURL.searchParams; const start = search_params.get('start') const end = search_params.get('end') console.log("full url: ", fullUrl); console.log(end); console.log(sart); // you can use string literal here axios.get(`https://${bamboo_api_key}:x@api.bamboohr.com/api/gateway.php/velocitypartners/v1/time_off/whos_out/${req.query.params}` , config) .then((response) => { console.log(response) console.log(req.query.params) res.send(response.data) }) .catch(error => { console.log(error) }); }) module.exports = router;
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!