Home > Software design >  push multiple objects into an array in javascript
push multiple objects into an array in javascript

Time:08-30

how can i push multiple object into an array

router.post(`/products`, upload.array("photos" , 10), async (req, res) => {
  console.log(res);
  try {
    let product = new Product();
    product.photos.push(req.files[0].location);
    product.photos.push(req.files[1].location);
    await product.save();
    console.log(Product);
    res.json({
      status: true,
      message: "save succes",
    });
  } catch (error) {
    console.log(error);
  }
});

this pushes the 1st and 2nd objects, lets say i have 10 files how can i write a line of code to push the 10 objects at once

  product.photos.push(req.files[0].location);
    product.photos.push(req.files[1].location);

how can i make it one line of code like getting the whole array and push to my database

CodePudding user response:

You could use a forEach on req.files:

req.files.forEach(f => product.photos.push(f.location))

CodePudding user response:

Array.prototype.push() accepts a variable number of arguments. You can spread an array as arguments

product.photos.push(...req.files.map(({ location }) => location));

I'd be inclined to set the photos array within your Product constructor instead

class Product {
  constructor(photos = []) {
    this.photos = photos;
  }
}

const product = new Product(req.files.map(({ location }) => location));
  • Related