2
respostas

Erro no comando node server_http2.js

Como resolver esse erro aqui:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Olá amigo.
Isso provavelmente se deve a incompatibilidade de versões das bibliotecas.
O projeto tenta carregar uma biblioteca que usa um recurso antigo do Node (http_parser) que no Node 24 esse recurso não existe mais.
A solução mais simples é utilizar uma versão do node mais antiga como a 18.
Tenta ai e caso precisar de ajuda para reinstalar o node ou resolver este conflito de comenta ai.
Bons estudos.

Solução sem alterar a versão do node(24)
No Node.js 24, o módulo interno http_parser foi removido.
O seu projeto depende de bibliotecas antigas (spdy e http-deceiver) que ainda tentam usar esse módulo.

O que precisa ser feito no Node 24

Você precisa substituir as bibliotecas antigas por versões modernas.
Pelo erro da imagem, o problema vem daqui:

node_modules/http-deceiver/
node_modules/spdy/

Solução correta no Node 24

  1. Descubra quem usa spdy
    No terminal:
npm ls spdy

Isso mostra qual pacote está chamando essa dependência.

  1. Atualize dependências do projeto
npm outdated

Depois:

npm update
  1. Remova dependências antigas
    Apague instalação antiga:
rmdir /s /q node_modules
del package-lock.json
npm cache clean --force
npm install

Problema específico do spdy
O pacote spdy é antigo.
Hoje o recomendado é usar HTTP/2 nativo do Node.
Em vez disso:

const spdy = require('spdy');

Use:

const http2 = require('http2');

Exemplo moderno para Node 24
Substitua algo parecido com:

const spdy = require('spdy');

spdy.createServer(options, app).listen(3000);

Por:

const http2 = require('http2');
const fs = require('fs');

const server = http2.createSecureServer({
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.cert')
});

server.listen(3000);

Comente ai qualquer duvida.