Проблема в том, что req.body.image
содержит URL данных , который представляет собой нечто большее, чем просто тело изображения. Данные изображения base64 начинаются после запятой. Ваш текущий код случайно кодирует заголовок URL-адреса данных (data:image/png
и т. Д.), Как если бы он был частью изображения, а это не так.
Простое исправление:
const base64Data = req.body.image.split('base64,')[1];
fs.writeFile(destination + req.query.title + ".png", base64Data, 'base64', ...);
(Этот код предполагает, что входящее изображение всегда корректно; вы можете добавить дополнительную логику, чтобы убедиться, что префикс действительно равен data:image/png;base64,
и т. Д., Если хотите.)