Добрый день! Я хочу, чтобы пользователь мог обновлять свою фотографию профиля, для работы с файлами стоит
multer для их загрузки
fs, но проблема в том, что у меня не получается даже корректно принять файл с клиента
HTML форма
<div id="img_preview" style="background-image: url();"></div>
<input type="file" name="img" class="file_hidden" id="change_img" readonly="" accept="image/*" onchange="Edit.encodeImageFileAsURL(this)">
<label for="change_img">Сменить фото</label>
JS
var file = document.querySelector("#change_img").files[0], form;
form = new FormData();
form.append("photo", file);
fetch('/upload', {
method: 'post',
body: form
}).then(function(res) {
res.json().then(function(data) {
if (data.status != "err") {
// successful response handler
}
});
}).catch(() => alert('Превышено время ожидание запроса!'));
NodeJS
app.use(multer({dest: __dirname + '/static/upload'}).single());
app.post('/upload', function(request, response) {
if (!request.body) return response.sendStatus(400);
console.log(request.body) // print undefined
console.log(request.file) // print {}
});
Заранее спасибо!