Considerando este trecho:
Se a linha 3 estamos criando uma constante com o express, por que na linha 5 não poderia ser:
app.use(app.json())?
Considerando este trecho:
Se a linha 3 estamos criando uma constante com o express, por que na linha 5 não poderia ser:
app.use(app.json())?
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
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.