'How can i make multer 'upload.fields' optional?
I have this 'post' method but it only works when i have both archives ('avatar' and 'document') uploaded, if i don't set them while sending the request, it ends with an error, how can I make the archives upload optional? I've already tried using 'upload.array', but it doesn't work as well.
Here is the parts of the code mentioned.
const cpUpload = upload.fields([{ name: 'avatar', maxCount: 1 }, { name: 'document', maxCount: 1 }])
app.post('/engajamentos',verifyJWT,cpUpload, async function(req, res){
var requisicao = req.body;
var Categoria = requisicao.Categoria;
var Tarefas = requisicao.Tarefas;
var Estado = requisicao.Estado;
var Municipio = requisicao.Municipio;
var Criticidade = requisicao.Criticidade;
var GT = requisicao.GT;
var Restrito = requisicao.Restrito;
var Foto = requisicao.Foto;
var Doc = requisicao.Doc;
var Tema = requisicao.Tema;
var Descricao = requisicao.Descricao;
var Contato = requisicao.Contato;
var Stakeholder = requisicao.Stakeholder;
var Participantes = requisicao.Participantes;
var AreasEnvolvidas = requisicao.AreasEnvolvidas;
var Data = requisicao.Data;
var IncidentePotencial = requisicao.IncidentePotencial;
var PossibilidadeDesdobramento = requisicao.PossibilidadeDesdobramento;
var DemandaTratamento = requisicao.DemandaTratamento;
var Inicio = requisicao.Inicio;
var Previsao = requisicao.Previsao;
var Prazo = requisicao.Prazo;
var Conclusao = requisicao.Conclusao;
var obs = requisicao.obs;
let foto = '';
let doc = '';
//VERIFICAÇÃO DE REGISTRO FOTOGRAFICO
if(req.files['avatar'].length == 0){
foto='';
}else{
foto=caminhoFoto+req.files['avatar'][0].filename;
}
if(req.files['document'].length == 0){
doc='';
}else{
doc=caminhoFoto+req.files['document'][0].filename;
}
let retorno = JSON.stringify(requisicao);
// console.log(retorno.length);
//console.log(Conclusao);
//VERIFICA SE ESTÁ VAZIO
if(retorno.length === 2){
//console.log("está vazio!");
res.send("está vazio!");
}else{
//FAZ CONEXÃO COM O BANCO
await connection.getConnection(async function(err, connectionx){
if(err){
response.status(503).json({erro:'conexao'});
}else{
//FAZ A INSERÇÃO DOS DADOS NO BANCO
await connectionx.query("INSERT INTO engajamentos(Categoria, Tarefas, Estado, Municipio, Criticidade, GT, Restrito, Foto, Doc, Tema," +
"Descricao, Contato, Stakeholder, Participantes, AreasEnvolvidas, Data, IncidentePotencial, PossibilidadeDesdobramento, DemandaTratamento, " +
"Inicio, Previsao, Prazo, Conclusao, obs)" + "VALUES"+ "(" +
"'"+ Categoria +"'"+","+
"'"+ Tarefas +"'"+","+
"'"+ Estado +"'"+","+
"'"+ Municipio +"'"+","+
"'"+ Criticidade +"'"+","+
"'"+ GT +"'"+","+
"'"+ Restrito +"'"+","+
"'"+ foto +"'"+","+
"'"+ doc +"'"+","+
"'"+ Tema +"'"+","+
"'"+ Descricao +"'"+","+
"'"+ Contato +"'"+","+
"'"+ Stakeholder +"'"+","+
"'"+ Participantes +"'"+","+
"'"+ AreasEnvolvidas +"'"+","+
"'"+ Data +"'"+","+
"'"+ IncidentePotencial +"'"+","+
"'"+ PossibilidadeDesdobramento +"'"+","+
"'"+ DemandaTratamento +"'"+","+
"'"+ Inicio +"'"+","+
"'"+ Previsao +"'"+","+
"'"+ Prazo +"'"+","+
"'"+ Conclusao +"'"+","+
"'"+ obs +"'"
+")", function(err,results,fields){
if(err){
response.status(503).json({erro:'query'});
}else{
res.send(results);
connectionx.release();
}
})
}
})
}
});```
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
