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.