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

107
Views
Tomando la entrada del formulario, recuperando datos de la base de datos y mostrando la salida

Estoy trabajando con nodejs, express y mongodb. Y estoy trabajando en cloud9 IDE

Quiero crear una página con un formulario que tome la entrada del usuario, busque los datos correspondientes de la base de datos y muestre esos datos en la misma página (después de recargar), y si los datos no están presentes, muestre una respuesta específica.

esto es lo que he hecho-

Ruta-

 app.get("/",function(req,res){ var asked = req.query.asked; Name.findOne({name:asked},function(err,foundAsked){ if(err){console.log("ERROR!!!");} else{res.render("Landing.ejs",{foundAsked:foundAsked}); } }); });

archivo EJS-

 //Form takes name as input from the user <form > <input type="text" name="asked" action="/" method="GET"> <button class="button">Submit</button> </form> //If data is found last name is returned <% if(foundAsked){ %> <h2 > <%= foundAsked.Lastname %> </h2> <% } %> //blank space stays there which is replaced by a response,if after //submission nothing is found <% if(!foundAsked){ %> <h5></h5> <% } %>

JS-

 $(".button").click(function(){ $("h5").text("No data present"); });

Pero el problema es que, si no se encuentran datos, se muestra la respuesta, pero permanece solo el tiempo antes de que la página se vuelva a cargar. Intenté buscar una respuesta, pero no encontré ninguna. Por favor, ayuda.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El texto que desea que se muestre aparecerá solo después de hacer clic en el button y, una vez recargado, tendrá que hacer clic nuevamente (y el clic mostrará el texto y activará una recarga, por lo que el texto desaparecerá nuevamente).

Debe tener otro botón (que no se envíe) para activar este mensaje. O más bien, ¿por qué no mostrarlo inicialmente (poner esto en línea, dentro de las etiquetas <h5> )?

Debe diferenciar entre 'sin datos' o 'sin consulta'. puedes hacerlo en el back-end, algo similar a esto:

 app.get("/",function(req,res){ var asked = req.query.asked; Name.findOne({name:asked},function(err,foundAsked){ if(err){console.log("ERROR!!!");} else{res.render("Landing.ejs",{foundAsked:foundAsked, asked: asked}); } }); });

Y luego en Landing.ejs :

 <% if(!foundAsked && asked){ %> <h5>No data present</h5> <% } %>
about 4 years ago · Santiago Trujillo 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!