Проблема с асинхронной отправкой файлов на сервер PostgreSQL, NodeJS

Есть код, задача которого принимать в формдату 1 файл (видео), несколько файлов (фотографии) и несколько текстовых значений и пополнять 2 сущности в БД, следуя алгоритму, описанному ниже. Код работает лишь иногда, точной закономерности корректной отработки функции проследить не смог, девтулс выкидывает 404 с пометкой 'canceled'.

Алгоритм: форма передается в асинхронную функцию, где все файлы переименовываются и закидываются в папку со статикой, после этого пополняется БД PostgreSQL. Может стоить как-то проверять, все ли файлы готовы для отправки и выполнять пополнение БД только после того как все файлы загрузились ?

На фронте:

  const addCar = () => {
        const formData = new FormData()
        formData.append('price', Number(price).toLocaleString('ru'))
        formData.append('carNameId', Number(car.selectedCarName.id))
        formData.append('year', `${year}`)
        formData.append('motor', motor)
        let date = new Date().toLocaleDateString()
        formData.append('date', date)
        formData.append('video', video)
        formData.append('image', images[0])
        Array.from(images).forEach(image => {
            formData.append('images', image);
        });
        createCar(formData).then(() => setCarVisible(false))
}

функция createCar:

export const createCar = async (car) => {
    const {data} = await $authHost.post('api/car', car)
    return data
}

Роутер:

router.post('/' ,checkRole('ADMIN'),CarController.create)

Контроллер:

class CarController {
    async create(req,res,next){                                
        try{
            let {price, carNameId, year, motor, date} = req.body        
            const {video, image, images} = req.files;                                                                 
            let videoName = uuid.v4() + '.mp4';                                                           
            video.mv(path.resolve(__dirname,'..', 'static', videoName));                                      
            let imgName  = uuid.v4() + '.jpg';
            image.mv(path.resolve(__dirname,'..', 'static', imgName))
            const car = await Car.create( {price,carNameId,year,motor,date,video: videoName,image: imgName})       
               if (images.length){
                  for (let i = 0; i<images.length;i++) {
                     imgName = uuid.v4() + '.jpg'
                     images[i].mv(path.resolve(__dirname,'..', 'static', imgName))
                     CarImages.create({
                        img: imgName,
                        carId: car.id
                })
            }
        }
            return res.json(car)                        
        } catch (e){
            next(ApiError.badRequest(e.message))     
        }
    }
}

Сущности в PostgreSQL:

const Car = sequelize.define('car', {
    id:                  {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},      
    price:               {type: DataTypes.STRING,    allowNull: false },        
    carNameId:           {type: DataTypes.INTEGER,   allowNull: false },         
    year:                {type: DataTypes.INTEGER,   allowNull: false},        
    motor:               {type: DataTypes.STRING,    allowNull: false },         
    date:                {type: DataTypes.STRING,    allowNull: false },          
    video:               {type: DataTypes.STRING,    allowNull: false },           
    image:               {type: DataTypes.STRING,    allowNull: false }            
})

const CarImages = sequelize.define('car_images', {
    id:                  {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},
    img:                 {type: DataTypes.STRING,    allowNull: false}
})

Car.hasMany(CarImages, {as: 'images'})
CarImages.belongsTo(Car)

Ответы (0 шт):