Если вы хотите обработать несколько файлов в одном запросе, процедура немного сложная.
Busboy проходит через единый поток и генерирует события всякий раз, когда приходят файлы (последовательно). Вы не можете получить отдельные потоки для всех файлов одновременно с Busboy. Это не ограничение библиотеки, это то, как работает HTTP.
Лучшим вариантом будет хранить все файлы во временном хранилище и хранить информацию для следующих промежуточных программ с помощью res.locals
:
const Busboy = require('busboy');
const path = require('path');
const fs = require('fs');
module.exports = (req, res, next) => {
res.locals.files = {};
// You need to ensure the directory exists
res.locals.someTemporaryDirectory = '/some/temp/dir/with/randomString/in/it';
let busboy;
try {
busboy = new Busboy({
headers: req.headers
});
} catch (e) {
return next(e);
}
busboy.on("file", (fieldname, file, filename, encoding, mimetype) => {
res.locals.files[fieldname + '_' + filename] = {
filename,
encoding,
mimetype
};
// I skipped error handling for the sake of simplicity. Cleanup phase will be required as well
const tempFilePath = path.join(res.locals.someTemporaryDirectory, fieldname + '_' + filename);
file.pipe(fs.createWriteStream(tempFilePath));
});
busboy.on("finish", next);
req.pipe(busboy);
};
В следующем промежуточном программном обеспечении будут использоваться res.locals.someTemporaryDirectory
и res.locals.files
заниматься своими делами (это потребует этапа очистки).
Это решение может показаться неоптимальным, но HTTP такой, какой есть. Вы можете вместо этого выдать отдельный HTTP-запрос для каждого файла, но я бы не рекомендовал его, поскольку вы столкнетесь с множеством других проблем (таких как синхронизация всех запросов + управление памятью).
Каким бы ни было решение, оно должно испачкать руки.
Машинное обучение можно было считать частью AI, однако я классифицирую Машинное обучение как исследование создания семантических моделей и адаптивного поведения с AI, являющимся полной наукой о системах то интеллектуально кажущееся поведение.
Большая часть того, что идет как "AI", является довольно упрощенной, но очень эффективной, такой как эвристика и т.п..
Мягкие Вычисления не делают упал как он, имеет многих ML и компоненты AI, как это больше об анализе сложных систем. Я мог быть неправым все же. Как с большинством вещей в информатике, чем глубже Вы роете, тем больше Вы обнаруживаете, что она все связана.
AI является интеллектуальным проектом попытки получить все аспекты агентурной разведки в компьютерах. Другой проект, также названный AI, стремится использовать вдохновленные человеком алгоритмы для приближения традиционно тяжелых проблем. AI, как могли говорить, охватил такие поля как робототехника, планирование, обоснование, изучение и понимание естественного языка.
Машинное обучение является дисциплиной, которая пытается изменить к лучшему производительность машины задачи, учитывая примеры. Это могло считаться в диапазоне AI интересов, но исследователи в машинном обучении должны не иметь никаких интеллектуальных долей в полном успехе AI. Машинное обучение имеет близкое перекрытие со статистической физикой и определенными темами обработки сигналов, и определенные формулировки сильно перекрывают планирование, управляют теорией и динамическим программированием.
Мягкие вычисления включают процессы, которые включают косвенные, приближенные решения вместо двоичных алгоритмов, которые, как широко полагают, включали такие технологии как нечеткую логику, нейронные сети и генетические алгоритмы. Существует широкое перекрытие между этими методами и определенным планированием и изучением подмножества AI, теории управления, сложной системной теории, и т.д.