TypeError: Cannot read property 'length' of undefined at Atendimentos.adiciona (C:\Users\Laura Santos\Desktop\Rest-nodejs\models\atendimentos.js:12:53) at C:\Users\Laura Santos\Desktop\Rest-nodejs\controllers\atendimento.js:11:21 at Layer.handle [as handle_request] (C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\express\lib\router\layer.js:95:5) at C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\express\lib\router\index.js:281:22 at Function.process_params (C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\express\lib\router\index.js:275:10) at jsonParser (C:\Users\Laura Santos\Desktop\Rest-nodejs\node_modules\body-parser\lib\types\json.js:101:7)
const moment = require('moment');
const conexao = require('../infra/conexao');
class Atendimentos { //cria o atendimentono banco
adiciona(atendimento, res) {
//Formatando data
const dataCriacao = moment().format('YYYY-MM-DD HH:mm:ss');
const data = moment(atendimento.data, 'DD/MM/YYYY').format('YYYY-MM-DD HH:mm:ss');
//validando data e cliente
const dataEhValida = moment(data).isSameOrAfter(dataCriacao); //isSameOrAfter -> data é a mesma ou apos dataCriacao.
const clienteEhValido = atendimento.cliente.length >= 5; //nome do cliente deve ter mais q cinco letras.
const validacoes = [
{
nome: 'data',
valido: dataEhValida,
mensagem: 'Data deve ser maior ou igual a data atual'
},
{
nome: 'cliente',
valido: clienteEhValido,
mensagem: 'Cliente deve ter pelo menos cinco caracteres'
}
];
const erros = validacoes.filter(campo => !campo.valido); //retorna os campos q não são validos | quais os erros
const existemErros = erros.length; //se retornar zero é false
if(existemErros) {
res.status(400).json(erros);
} else{
const atendimentoDatado = {...atendimento, dataCriacao, data}
const sql = 'INSERT INTO Atendimentos SET ?';
conexao.query(sql, atendimentoDatado, (erro, resultado) => {
if(erro) {
res.status(400).json(erro);
} else {
res.status(201).json(resultado);
}
})
}
}
}
module.exports = new Atendimentos;