Так что, если я правильно понимаю, вы хотите создать маршрут, который будет использоваться для загрузки файлов на сервер.Один из способов сделать это - использовать промежуточное программное обеспечение body-parser в сочетании с потоком записи:
const bodyparser = require('body-parser');
const express = require('express');
const fs = require('fs');
const app = express();
app.post('/upload/:image', bodyparser.raw({
limit: '10mb',
type: 'image/*'
}), (req, res) => {
const image = req.params.image;
const fd = fs.createWriteStream(`[SERVER_UPLOAD_PATH]/${image}`, {
flags: "w+",
encoding: "binary"
});
fd.end(req.body);
fd.on('close', () => res.send({status: 'OK'});
});
При отправке следующего запроса файл будет загружен в [SERVER_UPLOAD_PATH]:
curl -X POST -H 'Content-Type: image/png' --data-binary @[image-path]/image.png http://[server-url]/upload/image.png
Приведенный выше пример используется для загрузки изображений на сервер, но вы можете изменить его соответствующим образом.Обратите внимание, что вам нужно будет проверить тип файла, чтобы убедиться, что пользователи загружают только те типы файлов, для которых они предназначены.