我知道这里有很多帖子
req.file
这是我的html(哈巴狗)
input#avatar-file(type='file', name='avatar')
button#add-avatar-btn.btn.btn-info Add Avatar
我的阿贾克斯
s = {
onClick: () => {
$('#add-avatar-btn').on('click', function (e) {
e.preventDefault();
$('#avatar-file').click();
});
},
onChange: () => {
$('#avatar-file').on('change', function (e) {
e.stopPropagation();
e.preventDefault();
let file = e.target.files;
if (file.length === 1) {
let formData = new FormData();
formData.append('avatar', file);
console.log(formData, 'formdata'); // this gives me -> FormData {} "formdata"
s.runAjax(formData);
}
});
},
runAjax: dataValue => {
$.ajax({
method: 'post',
url: '/avatar/upload',
data: dataValue,
contentType: false,
processData: false,
success: data => {
console.log(data, 'data success return');
},
error: err => {
console.log(err, 'err return ');
}
});
},
};
s.onClick();
s.onChange();
const multer = require('multer');
const storage = multer.memoryStorage();
const upload = multer({ storage: storage });
router.post('/avatar/upload', upload.single('avatar'), async (req, res, next) => {
try {
console.log(req.body.avatar, 'req.body.avatar'); // { avatarUrl: '[object FileList]' } 'req.body'
console.log(req.files, 'request files'); // undefined
console.log(req.file, 'single file'); // undefined
return res.json({status: true});
} catch (err) {
return next(err);
}
});
我做错了什么?
但我被困在这里了。