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

262
Visualizações
Usando express y mongoose, ¿cómo envío una matriz de múltiples ID desde el lado del cliente al lado del servidor usando una ruta POST?

Tengo una aplicación CRUD simple, usando express, mongoose y EJS. En la página index.EJS, tengo una tabla que muestra cada producto con casillas de verificación en cada fila, y cada casilla de verificación tiene el _ID del producto. Tengo un botón Eliminar seleccionado que llama a una función que coloca todas las entradas marcadas en una matriz, que esencialmente se convierte en una matriz de ID que quiero eliminar. Luego quiero usar los métodos deleteMany y $in para eliminar esas entradas de mi base de datos, como se muestra a continuación:

 async function deleteMany() { const toDelete = [] const checkboxes = document.querySelectorAll('input[type="checkbox"]') for (let checkbox of checkboxes) { if (checkbox.checked == true) { toDelete.push(checkbox.value) } } await Product.deleteMany( { _id: { $in: toDelete } } ) }

El problema es que no puedo acceder a mi modelo de producto ni a mi base de datos desde el archivo index.ejs. Solo puedo acceder a ellos a través de mi archivo index.JS del lado del servidor. Entonces, parece que necesitaría una forma de enviar una solicitud de publicación a index.js para poder realizar las funciones de la base de datos allí. Por supuesto, así es como manejo todas las demás rutas, como obtener, eliminar y colocar para una sola entrada. Pero no sé cómo hacerlo para una matriz de múltiples entradas.

Primera pregunta: ¿Cómo envía y analiza esa matriz?

Segunda pregunta: ¿Cómo envío una solicitud de publicación desde esta función? No tengo un formulario, y tratar de hacerlo a través de un URI no tiene sentido porque en lugar de tener un :id para los parámetros, tengo una serie de ID. No me gustaría que aparecieran todos en la URI. Estaba pensando que tendría que piratear un formulario oculto, completar el campo de nombre con la matriz y luego llamar a form.submit() con la función. Pero eso parece muy, muy kludgey.

Disculpas de antemano si he expresado algo incorrectamente o de manera incómoda, solo estoy aprendiendo express/mongoose.

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

0

Esta es una tarea muy simple y básica y le recomiendo que lea la documentación de express.js. debe agregar un enrutador posterior en el lado del servidor y realizar una solicitud utilizando fetch , axios u otras bibliotecas y herramientas. deberías hacer algo como esto:

En su index.js (lado del servidor):

 app.post('/deleteMany' ,(req,res) => { const toDelete = req.body.toDelete await Product.deleteMany({_id: {$in: toDelete}}) res.send('deleted') // or whatever })

nota: debe usar body-parser en su aplicación express para obtener req.body .

en su archivo ejs (frontend):

 async function deleteMany() { const toDelete = [] const checkboxes = document.querySelectorAll('input[type="checkbox"]') for (let checkbox of checkboxes) { if (checkbox.checked == true) { toDelete.push(checkbox.value) } } await fetch("server-url/deleteMany", { method: "POST", body: JSON.stringify({ toDelete }) }) }
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