Как должна выглядеть загрузка мультитера с таким именем ввода: orderItem [i] [photo] - PullRequest
0 голосов
/ 17 апреля 2019

У меня следующая проблема, я пытаюсь загрузить несколько файлов с помощью multer, у меня есть несколько входов для фотографий в форме, они динамически генерируются pug:

                             each item in [0,1]
                                .row(id=`order-item-${item}`)
                                    .col-md-4.col-sm-4
                                        legend Regular Image
                                        .fileinput.fileinput-new.text-center(data-provides='fileinput')
                                            .fileinput-new.thumbnail
                                                img(src='/assets/img/image_placeholder.jpg', alt='...')
                                            .fileinput-preview.fileinput-exists.thumbnail
                                            div
                                                span.btn.btn-rose.btn-round.btn-file
                                                    span.fileinput-new Select image
                                                    span.fileinput-exists Change
                                                    input(type='file', name=`orderItem[${item}][photo]`)
                                                a.btn.btn-danger.btn-round.fileinput-exists(href='#pablo', data-dismiss='fileinput')
                                                    i.fa.fa-times
                                                    |  Remove

Имя моих входовследующий - orderItem [0] [photo], orderItem [1] [photo], мне нужны такие имена, потому что у меня есть следующая модель данных:

const orderSchema = new Schema({
  name: {
    type: String,
  },
  phone: {
    type: String,
  },
  email: {
    type: String,
  },
  employee: {
    type: mongoose.Schema.ObjectId,
    ref: 'User',
  },
  orderItem: [
    {
      name: {
        type: String,
      },
      photo: {
        type: String,
      },
      status: {
        type: String,
      },
      services: {
        type: [String],
      },
      price: {
        type: String,
      },
    },
  ],
});

И сам вопрос, как я могу передать этот вводимя для мультера?

exports.upload = multer(multerOptions).array();
...