3
respostas

Quando executo essa parte do codigo da erro

Quando eu faço uma requisição GET pelo postman ele retorna esse erro:

The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received function getTodosLivros

function getLivros(req, res) { try { const livros = getTodosLivros; res.send(livros); } catch (error) { res.status(500); res.send(error.message); } }

se eu troco a função getTodosLivros por JSON.parse(fs.readFileSync("livros.json")), ele funciona e me retorna o JSON completo com todos livros

3 respostas

Fala Silvestre, tranquilidade ?

Acredito que esteja faltando um par de parênteses para invocar a função getTodosLivros, conforme no código a seguir:

function getLivros(req, res){ 
try { 
    // const livros = getTodosLivros; 
    const livros = getTodosLivros(); // <-- acrescenta os parênteses 
    res.send(livros);
}
catch (error) { 
    res.status(500); res.send(error.message); }
}

Ao passar a função sem os parênteses você passa apenas a referência dela, e não a invoca de fato para obter os livros na sua resposta HTTP.

Fico no aguardo para saber se isso soluciona, qualquer coisa só mandar aqui que estou acompanhando o tópico.

Bons estudos!

Era isso mesmo! Deu certo. Muito Obrigado

Maravilha! Segue firme nos estudos!