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

366
Visualizações
solo inserte variables que tengan valores, no node.js indefinido

Así que tengo esto:

 var dates = { monday: req.body.monday, tuesday: req.body.tuesday, wednesday: req.body.wednesday, thursday: req.body.thursday, friday: req.body.friday, saturday: req.body.saturday, sunday: req.body.sunday } console.log(Object.values(dates))

la forma en que esto funciona es que puede seleccionar una casilla de verificación en el front-end, y todos los resultados se enviarán al backend independientemente de si lo marcó o no. Ahora, necesito clasificar esos resultados para insertar solo los que fueron seleccionados (no tienen valores definidos, como la respuesta de matriz a continuación).

en el conjunto de resultados del bucle for, se devuelve así:

 [ '2', undefined, undefined, undefined, undefined, undefined, '1' ]

como puede ver, 5/7 no están definidos. Así que tengo una consulta de inserción estándar en SQL, pero necesito insertar solo los valores que están definidos. así que en mi cabeza estoy pensando insert into clients where Object.values(dates) != undefined , pero sé que eso no está bien, especialmente porque esa es ahora la forma en que funciona la consulta sql lol.

Tengo esto:

 var addclient = "insert into clients (NAME, EMAIL, PHONE_NUMBER, TRAINER_NAME, HOUR, MINUTE, DATES) values ('" + name + "', '" + email + "', '" + phonenumber + "', '" + req.session.username + "', '" + hour + "', '" + minute + "', '" + dates + "')";

¿Cómo puedo hacer esto?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Además de la pregunta real, usar una entrada no saneada para crear una cadena sql en la forma en que se muestra en el fragmento es un gran riesgo. Permite a un atacante realizar una inyección de sql. Vea más aquí: https://owasp.org/www-community/attacks/SQL_Injection

about 4 years ago · Juan Pablo Isaza Relatório

0

Si espera insertar los valores como una cadena delimitada por comas, puede lograrlo haciendo lo siguiente:

 const formattedString = Object.values(dates).filter(el => el).join(', '); var addclient = "insert into clients (NAME, EMAIL, PHONE_NUMBER, TRAINER_NAME, HOUR, MINUTE, DATES) values ('" + name + "', '" + email + "', '" + phonenumber + "', '" + req.session.username + "', '" + hour + "', '" + minute + "', '" + formattedString + "')";

Tenga en cuenta que cambié las "fechas" en su método de inserción a la nueva "cadena formateada". Dado su ejemplo, formattedString sería "2, 1".

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