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

231
Visualizações
Parámetros de consulta en Express

Estoy tratando de obtener acceso a los parámetros de consulta usando Express en Node.js. Por alguna razón, req.params sigue apareciendo como un objeto vacío. Aquí está mi código en server.js :

 const express = require('express'); const exphbs = require('express-handlebars'); const bodyParser = require('body-parser'); const https = require('https'); //custom packages .. //const config = require('./config'); const routes = require('./routes/routes'); const port = process.env.port || 3000; var app = express(); //templating engine Handlebars app.engine('handlebars', exphbs({defaultLayout: 'main'})); app.set('view engine', 'handlebars'); //connect public route app.use(express.static(__dirname + '/public/')); app.use(bodyParser.json()); //connect routes app.use('/', routes); app.listen(port, () => { console.log( 'Server is up and running on ' + port ); });

Y aquí está mi archivo de rutas:

 //updated const routes = require('express').Router(); routes.get('/', (req, res) => { res.render('home'); }); routes.post('/scan', (req, res) => { res.status(200); res.send("hello"); }); routes.get('/scanned', (req, res) => { const orderID = req.params; console.log( req ); res.render('home', { orderID }); }); module.exports = routes;

Cuando el servidor está en funcionamiento, navego a http://localhost:3000/scanned?orderid=234 . El registro de la consola que tengo actualmente en el archivo routes.js muestra un cuerpo vacío (no reconoce el parámetro orderid en la URL).

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

orderid en la solicitud es el parámetro de consulta. Se debe acceder a él a través del objeto req.query no con req.params . Use el siguiente código para acceder al orderid pasado en la solicitud:

 const orderID = req.query.orderid

Ahora debería poder pasar el valor 234 en la URL de la solicitud.

O intente reemplazar el código de ruta /scanned con el siguiente:

 routes.get('/scanned', (req, res) => { const orderID = req.query.orderid console.log( orderID ); // Outputs 234 for the sample request shared in question. res.render('home', { orderID }); });
about 4 years ago · Santiago Trujillo Relatório

0

La razón por la que req.body sigue apareciendo como un objeto vacío es que en las solicitudes de get , como las que realiza el navegador durante la navegación, no hay ningún objeto de cuerpo. En una solicitud de get , la cadena de consulta contiene el ID de pedido al que intenta acceder. La cadena de consulta se adjunta a la URL. Su código se puede reescribir de la siguiente manera:

 routes.get('/scanned', (req, res) => { const orderID = req.query.orderid console.log( req ); res.render('home', { orderID }); });

Sin embargo, una nota es que si tiene publicaciones AJAX que se activan dentro del código del lado del cliente, su req.body no estará vacío y puede analizarlo como lo haría normalmente.

about 4 years ago · Santiago Trujillo 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