Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

247
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda