Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Sobre o express.json()

Considerando este trecho: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Se a linha 3 estamos criando uma constante com o express, por que na linha 5 não poderia ser:

app.use(app.json())?

3 respostas

Oi, Flavio, tudo bem?

O método json() é específico de express, e não da constante app. No framework Express, a constante app possui seus métodos próprios, como app.use(), app.get(), app.post(), etc. Da mesma forma, a função express que importamos do módulo express também possui seus próprios métodos, como express.json() e outros.

Dessa forma, tentar acessar app.json() não irá funcionar no código, já que app não possui esse método.

Caso queira se aprofundar, você pode conferir as propriedades e métodos específicos de cada um desses elementos na documentação oficial do Express: express e app.

Abraços e bons estudos!

Entendi.

A constante app é criada a partir da função de nível superior express(). A partir desta função temos os métodos use(), get(), post() etc.

E ao importarmos o express com import express from "express" temos (uma variável? uma instância? um objeto?) express. Mas o nome poderia ser pipoquinha. Ex: import pipoquinha from "express" Aí teríamos: app.use(pipoquinha.json());

Onde pipoquinha agora é o nosso express, com seus métodos, e a constate app recebe a função express() com seus métodos.

Claro: 'pipoquinha' não é tão legal quanto 'express'. Mas deixa mais didática a explicação :D

solução!

Isso mesmo, Flavio!

No código import express from "express", a referência express na verdade é uma função. No código abaixo, ela é executada e atribuímos seu valor de retorno à constante app:

const app = express();

Além disso, no JavaScript, funções também podem ter propriedades e métodos! Mais especificamente, nessa aula conhecemos o método json(), podemos acessá-lo escrevendo express.json().

Espero ter ajudado! Qualquer dúvida estamos aqui.