1
resposta

[this.sal, this.hash] = criaHashComSal(senha).split(':') --> erro nessa linha

Se alguém puder ajudar a resolver esse erro agradeço!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Tiago! Tudo bem?

O erro que você está enfrentando ocorre devido a um problema na atribuição de valores no construtor da classe Usuario. O erro "TypeError: Cannot create property 'underfined' on string 'tiago pasito'" indica que você está tentando criar propriedades em uma string, o que não é permitido.

O que está acontecendo é que criaHashComSal(senha).split(':') está retornando um array, mas a string que está sendo dividida não contém dois pontos (':'), o que significa que split(':') está produzindo um array com apenas um elemento (a string original), e é por isso que você está obtendo esse erro.

Esse era um erro que não devia estar acontecendo, chega a ser estranho, tente reiniciar o seu computador ou só o VScode para ver se não houve algum problema em ambos. Contudo, para contornar isso, você pode adicionar uma verificação para garantir que split(':') produza um array com pelo menos dois elementos. Você pode fazer algo assim:

const hashParts = criaHashComSal(senha).split(':');
if (hashParts.length === 2) {
  [this.sal, this.hash] = hashParts;
} else {
  throw new Error('Formato de hash inválido');
}

Isso verifica se hashParts tem exatamente dois elementos antes de tentar atribuí-los a this.sal e this.hash. Dessa forma, você evitará o erro e garantirá que seu código funcione corretamente quando a string tiver o formato esperado.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software