1
resposta

Erro Node.js Socket.io

Olá, Tudo bem?

Saberiam me dizer como consertar tal erro? Aonde procurar? Boas práticas? Como entender o que está escrito, eu sei ingles, e saber os significados e aonde estão os erros?Olá

TypeError: Cannot read property 'emit' of undefined
    at C:\back\auth\authenticator.js:26:16
    at Query.callback (C:\back\node_modules\pg-pool\index.js:371:18)
    at Query.handleReadyForQuery (C:\back\node_modules\pg\lib\query.js:122:12)
    at Client._handleReadyForQuery (C:\back\node_modules\pg\lib\client.js:281:19)
    at Connection.emit (events.js:314:20)
    at C:\back\node_modules\pg\lib\connection.js:109:12
    at Parser.parse (C:\back\node_modules\pg-protocol\dist\parser.js:40:17)
    at Socket.<anonymous> (C:\back\node_modules\pg-protocol\dist\index.js:8:42)
    at Socket.emit (events.js:314:20)
    at addChunk (_stream_readable.js:297:12)
Obrigado.
1 resposta

Bom dia Eric, tudo certo?

Vou tentar dar um resumo do que esse erro quer dizer e como você pode chegar mais perto da causa.

Os erros comumente nos mostram uma mensagem e em seguida a pilha de funções chamadas onde ocorreu aquele erro.

Nesse caso, a mensagem que temos é

TypeError: Cannot read property 'emit' of undefined

Ou seja, em uma tradução livre é algo na linha de:

Erro de tipo: não é possível ler a propriedade 'emit' de 'undefined'

E em seguida temos a pilha de chamadas da função, ou seja, quais foram as funções chamadas em ordem até a exceção ser levantada. Na maioria dos casos, o erro vai ser originado nas primeiras linhas, pois a chance que nós estarmos errado ao invés de uma biblioteca é grande.

Então olhando a pilha temos uma dica:

    at C:\back\auth\authenticator.js:26:16

A primeira linha nos diz que no arquivo \back\auth\authenticator.js na linha 26 e especificamente no caractere 16 algum comportamento indevido foi iniciado e propagado até "estourar".

O que você pode fazer para mitigar esse erro em específico é validar se o objeto que está sendo instanciado ou não e garantir que ele é do tipo que tenha uma propriedade emit. Caso você queira disponibilizar o seu projeto no GitHub e compartilhar conosco o link eu estarei no aguardo para tentar te ajudar de forma mais específica.

Espero ter ajudado e bons estudos!