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

158
Views
Almacenamiento de datos en ciclos de solicitud/respuesta en Express (nodo JS)

Actualmente estoy trabajando en una aplicación simple con nodejs y express. Cargo un número aleatorio, el usuario traduce ese número al español y el usuario lo envía. Luego necesito comparar la respuesta del usuario con la traducción real para ver si el usuario estaba en lo correcto.

ingrese la descripción de la imagen aquí

La ruta para mi página principal es bastante simple: renderizo un diseño con un número aleatorio para el nivel dado de un usuario en el juego, junto con un sustantivo aleatorio (ambas son solo funciones que he requerido de un archivo separado).

 app.get('/', catchError(async (req, res) => { res.render("layout", { num: randNumForLevel(0), noun: randNoun(), }); }))

Sin embargo, aquí está mi desafío: cuando el usuario hace clic en "enviar", necesito comparar su respuesta con la traducción real al español (en este caso es para el número "20"). Sin embargo, de la forma en que he estructurado el código actualmente, generé el número y lo pasé directamente a mi vista, lo que significa que no tengo acceso a él en el próximo ciclo de solicitud/respuesta.

Así que mi pregunta es la siguiente: ¿dónde debo almacenar este número generado aleatoriamente (en este caso, "20") para tener acceso a él cuando el usuario envíe el formulario? ¿Debo ponerlo en la sesión? app.locals? ¿en algún otro lugar? No estoy seguro de cuál es la mejor práctica, así que me encantaría algún consejo.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El principal problema de enviar la traducción real y el número generado aleatoriamente es que el cliente puede engañar fácilmente y ver la traducción.

Creo que necesitas reestructurar la forma en que envías el número.

Solo como ejemplo, usaría una base de datos para almacenar los números del nivel 1 con el siguiente esquema:

 { id: '1', number: 20, level: '1' }

Siempre puede almacenarlos en la memoria como un objeto JavaScript y filtrarlos por nivel.

 const my_db = { level1: [ { id: '1', number: 10, level: '1', answer: 'diez' }, ] } // create challenge programmatically let randNum = randNumForLevel(0) let noun = randNoun() let answer = getTranslationFor(randNum) my_db.level1.push({ id: '2', number: randNum, answer: answer })

Envía el id del desafío y el número aleatorio al cliente. La respuesta del cliente debe tener la identificación del desafío y la traducción del usuario.

Busque la identificación dada en su base de datos u objeto js, compare la traducción del usuario y la traducción correcta y estará listo para comenzar

¡Agradable! ahora tiene una forma de comparar los números sin enviar la traducción real.

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!