1
resposta

[Dúvida]No método post, como ele reconhece o que é ou não parâmetro.

No curso há métodos de adicionar novos valores para a data base. O código da função criaVideo, que manda um objeto pra array de db é o seguinte:

async function criaVideo(titulo, descricao, url, imagem) {
    const conexao = await fetch('http://localhost:3000/videos',{
        method: "POST",
        headers:{
            "Content-type": "application/json"
        },
        body: JSON.stringify({
            titulo: titulo,
            descricao: `${descricao} mil visualizações`,
            url: url,
            imagem: imagem
            
        })
    })
    if(!conexao.ok){
        throw new Error("Não foi possível enviar o vídeo");
    }

    const conexaoConvertida = await conexao.json();
    return conexaoConvertida;
}

Observamos que a função criaVideo tem os parâmetros "titulo", "descricao", "url" e "imagem". No corpo da função, temos:

  body: JSON.stringify({
            titulo: titulo,
            descricao: `${descricao} mil visualizações`,
            url: url,
            imagem: imagem

Como o JS reconhece, dentro do método Stringfy, que na linha que temos titulo: titulo, a primeira instância da palavra título se refere à propriedade do objeto que estamos criando e que a segunda instância da mesma palavra é o parâmetro que passamos na função? Como ele não interpreta tudo como o parâmetro "título"?

1 resposta

Olá Annie, tudo bem?

O JavaScript reconhece que a primeira instância da palavra "titulo" dentro do método JSON.stringify() se refere à propriedade do objeto que está sendo criado, e a segunda instância da palavra "titulo" se refere ao parâmetro que foi passado para a função criaVideo.

Dessa forma, na linha que temos titulo: titulo, a primeira instância da palavra título se refere à propriedade do objeto que estamos criando e que a segunda instância da mesma palavra é o parâmetro que passamos na função.

Para esclarecer, a sintaxe chave: valor é a forma como, você define uma propriedade de objeto no JavaScript. Quando você escreve titulo: titulo, está essencialmente dizendo "crie uma propriedade chamada 'titulo' no objeto e atribua a ela o valor da variável 'titulo' que foi passada como parâmetro".

Isso é um aspecto fundamental da linguagem JavaScript e permite que você crie objetos com propriedades dinâmicas, ou seja, cujos valores podem variar com base nos parâmetros que você passa para uma função.

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!