Estou tentando salvar o nome da imagem no banco de dados com um FormData;
porém está dando que a imagem está nula no Servidor Node JS da API.
Uso React Native e Express File Upload e Node JS.
Muito obrigada.
Segue o código:
Constantes:
const [nome, setNome] = useState('');
const [marca, setMarca] = useState('');
const [modelo, setModelo] = useState('');
const [foto, setFoto] = useState('');
const [fotoNome, setFotoNome] = useState('');
const [fotoType, setFotoType] = useState('');
const [usuarioId, setUsuarioId] = useState('');
Código da API:
const nome = req.body.nome;
const marca = req.body.marca;
const modelo = req.body.modelo;
const foto = req.files;
const usuarioId = req.body.usuario_id;
const file = Date.now().toString() + '_' + foto.myfile;
const filePath = path.join(__dirname, 'public', 'imagens');
foto.mv(`${filePath}/${file}`, err => {
if (err) {
return res.send('Imagem não salva!');
} else {
return res.send('Imagem salva com sucesso!');
}
});
Escolhe a Imagem:
const escolhaImagem = (response) => {
if (response.didCancel) {
console.log('Cancelado!');
} else if (response.error) {
console.log("Erro na Imagem: " + response.error);
} else if (response.customButton) {
console.log('Botão customizado' + response.customButton);
} else {
setFoto(response);
setFotoUri(response.uri);
setFotoNome(response.fileName);
setFotoType(response.type);
}
}
Função FormData no Cadastro:
const formData = new FormData();
formData.append('nome', nome);
formData.append('marca', marca);
formData.append('modelo', modelo);
formData.append('myfile', fotoNome);
formData.append('usuario_id', usuarioId);
console.log(formData);
const headers = {
method: "post",
body: formData,
headers: {
"Content-Type": "multipart/form-data",
"Accept": "application/json",
},
}
await fetch(URL_SERVIDOR + '/salvar-veiculo', headers)
.then(response => response.json())
.then(result => {
console.log(result)
}).catch((err) => {
console.log("ERRO: " + err);
});