jemluz / stream-node

A basic node starter project by @Rocketseat
1 stars 0 forks source link

O NodeJS #1

Open jemluz opened 1 year ago

jemluz commented 1 year ago

Já pensou oq pode acontecer quando um frontend passa dos limites?

Ele pode simplesmente acordar e pensar "e se eu usasse o javascript no lado do servidor?". Foi oq o Ryan Dahl fez.

Essa foi a grande aposta do NodeJS. E a partir dai ele começou sua jornada e aos poucos foi ganhando relevância até começar a disputar mercado com outras tecnologias com php, java...

O node

jemluz commented 1 year ago

Módulos

CommonJS

Por padrão o node aceita o padrão CommonJS, onde para utilizar módulos invocamos a palavra require para importar.

const http = require('http')

ESModules

Também é possível utilizar o ESModules, que utiliza os termos import/export, só que como esse não é padrão, precisa ser habilitado.

import http from 'http'

Para habilitar o ESModules

Diferenciando módulos

O Node recomenda que os módulos importados sejam diferenciados com o prefixo "node:" na frente, para bibliotecas internas. E sem o prefixo para bibliotecas de terceiros.

import http from 'node:http'
jemluz commented 1 year ago

Malemolência com Functions Callbacks e Arrow Functions no JS

Callbacks

São funções que são passadas como argumentos para outras funções.

http.createServer((req, res) => { } )

Arrow Function

É uma forma abreviada de escrever uma função.

(params) => { }
jemluz commented 1 year ago

Os objetos Request e Response

Dentro do node você vai cansar de ver funções que esperam receber 2 parâmetros fundamentais: os objetos Request e Response.

http.createServer((request, response) => { } )

Os dois parâmetros são posicionais, eles não dependem do nome que você irá utilizar, e sim da ordem em que estão posicionados dentro dos parâmetros da função.

http.createServer((primeiro, segundo) => { } )
http.createServer((feijao, arroz) => { } )
http.createServer((pão, ovo) => { } )

Esses objetos são pré-definidos pelo node, de modo que suas anatomias serão ligeiramente diferentes.

O conceito por trás desses objetos aparece em todas linguagens de backend, já que independente da linguagem que manipulam http, a necessidade de lidar com requisições continua.

Request

Response

jemluz commented 1 year ago

Use node --watch para rodara aplicação e não perder modificações