Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Preciso de uma ajuda

https://github.com/WesleySoeiro/ProjetoBD

Estou tentando fazer conexão pelo Postgres, mas sempre dá um erro.

Já mudei a porta, conferi que a porta não está em uso, no link segue o projeto, e meu .env está assim:

PORT=3000;
DB_CONNECTION_STRING='postgres://meu_user:minha_senha%4010@localhost:5432/ProjetoBD'

sendo o simbolo %4010 para representar um @.

segue o erro:

Server is running on port 3000
[nodemon] restarting due to changes...
[nodemon] starting `node server.js`
node:events:497
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 3000;
    at Server.setupListenHandle [as _listen2] (node:net:1882:21)
    at listenInCluster (node:net:1961:12)
    at Server.listen (node:net:2080:5)
    at Function.listen (C:\Users\wesle\OneDrive\Área de Trabalho\Projeto DB\Projeto\node_modules\express\lib\application.js:635:24)
    at Object.<anonymous> (C:\Users\wesle\OneDrive\Área de Trabalho\Projeto DB\Projeto\server.js:5:5)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1940:8)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'EACCES',
  errno: -4092,
  syscall: 'listen',
  address: '3000;',
  port: -1
}

Node.js v20.18.0
[nodemon] app crashed - waiting for file changes before starting...
1 resposta
solução!

Oi Wesley,

O erro EACCES: permission denied indica que o seu programa não tem permissão para usar a porta 3000. Isso geralmente acontece em sistemas Unix-like (Linux, macOS) quando você tenta usar uma porta reservada (portas abaixo de 1024) sem privilégios de administrador. No entanto, a porta 3000 não é uma porta reservada, então o problema é outro.

Analisando o seu erro, note que a mensagem address: '3000;' indica que a porta está sendo lida como 3000; em vez de 3000, o que pode indicar que o problema está na forma como a variável de ambiente PORT está sendo lida, o que pode causar o erro port: -1.

O problema pode estar na forma como você definiu a variável PORT no seu arquivo .env. Variáveis de ambiente devem ser definidas sem ponto e vírgula no final.

Tente remover o ponto e vírgula do final da linha PORT=3000; para que fique PORT=3000 e reinicie o servidor.

Outra possível causa é um processo já estar utilizando a porta 3000, mas você já verificou que a porta não está em uso.

tux matrix    Caso este post o tenha ajudado, por favor, marcar como solucionado ☑️. Bons Estudos! 🤓