Как реализовать последовательную загрузку файлов с помощью sharp.js?

Для реализации последовательной загрузки файлов с помощью sharp.js в Node.js, вам понадобится использовать асинхронные функции и методы работы с файлами. Sharp.js - это библиотека для обработки изображений, которая предоставляет методы для изменения размеров изображений, обрезки, наложения фильтров и многого другого.

Вот пример кода, который демонстрирует как реализовать последовательную загрузку и обработку файлов с sharp.js:

const fs = require('fs');
const sharp = require('sharp');

// Список файлов, которые нужно обработать
const files = ['file1.jpg', 'file2.png', 'file3.jpeg'];

// Функция для загрузки и обработки файла
const processFile = async (file) => {
    try {
        const inputBuffer = fs.readFileSync(file);
        const image = sharp(inputBuffer);

        // Производим необходимые операции над изображением
        await image
            .resize(200) // Изменяем размер изображения до ширины 200 пикселей
            .toFile(`output-${file}`); // Сохраняем обработанное изображение

        console.log(`Файл ${file} успешно обработан!`);
    } catch (err) {
        console.error(`Ошибка при обработке файла ${file}: ${err.message}`);
    }
};

// Функция для последовательной обработки файлов
const processFilesSequentially = async () => {
    for (let file of files) {
        await processFile(file);
    }
};

// Вызываем функцию для последовательной обработки файлов
processFilesSequentially()
    .then(() => console.log('Все файлы успешно обработаны!'))
    .catch(err => console.error(`Ошибка при обработке файлов: ${err.message}`));

В данном примере мы сначала загружаем каждый файл, затем обрабатываем его с помощью sharp.js, изменяем размер изображения до ширины 200 пикселей и сохраняем результат в новый файл. После успешной обработки каждого файла выводим соответствующее сообщение.

Таким образом, данное решение позволяет последовательно загружать и обрабатывать несколько файлов с помощью sharp.js в Node.js.