Hiring Coders #3 - Fase 1 - Semana6 -> Node.JS - Criando uma REST API - Parte4

Ao replicar o exemplo passado pelo professor ocorreu um erro que não consegui compreender e resolver. Ao fazer a requisição no postman, passando os parâmetros necessários, ocorre o erro abaixo:

ERRO:
node:_http_outgoing:576
throw new ERR_HTTP_HEADERS_SENT(‘set’);
^

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at new NodeError (node:internal/errors:371:5)
at ServerResponse.setHeader (node:_http_outgoing:576:11)
at ServerResponse.header (C:\Users\Carlos\Desktop\Desenvolvimento\curso_VTEX HiringCoders - GamaAcademy\NodeJS - Criando u
ma REST API\node_modules\express\lib\response.js:794:10)
at ServerResponse.send (C:\Users\Carlos\Desktop\Desenvolvimento\curso_VTEX HiringCoders - GamaAcademy\NodeJS - Criando uma
REST API\node_modules\express\lib\response.js:174:12)
at ServerResponse.json (C:\Users\Carlos\Desktop\Desenvolvimento\curso_VTEX HiringCoders - GamaAcademy\NodeJS - Criando uma
REST API\node_modules\express\lib\response.js:278:15)
at ServerResponse.send (C:\Users\Carlos\Desktop\Desenvolvimento\curso_VTEX HiringCoders - GamaAcademy\NodeJS - Criando uma
REST API\node_modules\express\lib\response.js:162:21)
at Query.onResult (C:\Users\Carlos\Desktop\Desenvolvimento\curso_VTEX HiringCoders - GamaAcademy\NodeJS - Criando uma REST
API\index.js:67:9)
at C:\Users\Carlos\Desktop\Desenvolvimento\curso_VTEX HiringCoders - GamaAcademy\NodeJS - Criando uma REST API\node_module
s\mysql2\lib\commands\query.js:86:16
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
code: ‘ERR_HTTP_HEADERS_SENT’
}

Código:

//servico de busca de noticia
app.get('/nodejs---criando-uma-rest-api/v1/categorias/:categoriaId/noticias', (req, res) => {

  res.send(req.params.categoriaId);

  //busca noticia de uma categoria
  connection.query('SELECT id, titulo FROM sistema_noticia.noticia WHERE idCategoria = ' + req.params.categoriaId, function (err, rows, fields) {
    if (err){
      throw err;
    }

    res.send(rows[0]);
  })
})

//servico de busca uma noticia
app.get('/nodejs---criando-uma-rest-api/v1/categorias/:categoriaId/noticias/:noticiaId', (req, res) => {

  res.send(req.params.categoriaId);

  //busca noticia
  connection.query('SELECT id, titulo FROM sistema_noticia.noticia WHERE idCategoria = ' + req.params.categoriaId + ' AND id = ' + req.params.noticiaId, function (err, rows, fields) {
    if (err){
      throw err;
    }

    res.send(rows[0]);
  })
})

Opa, fala mano, o seu erro está sendo ocasionado pq vc está enviando a resposta 2 vezes no código “res.send();” e ela só pode ser enviada uma vez, então você troca o res.send do categoriaId por exemplo e coloca um console log se quiser visualizar o id.