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

253
Views
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 answers
Answer question

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 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!