Skip to main content

One post tagged with "11/06/2022"

View All Tags

· 3 min read

11/06/2022 - Aula 1 de Node.js (Presencial)

O Professor Marlon, começou a aula as 08:30h, por ser a primeira aula, teve alguns problemas técnicos em relação a projeto e internet na Unipar, ficamos aguardando sem fazer nada até as 08:45h, pois professor estava aguardando outros alunos chegarem.

Começamos vendo sobre a origem da linguagem utilizada, o JavaScript, que rodava em navegadores, e a ideia do Node.js é que seja possível rodar JavaScript fora do navegador, ou seja, em um servidor ou em um computador desktop, mas seu maior foco é o desenvolvimento de aplicações backend.

Para isso acontecer, o Node se utiliza o Chrome V8 Engine, que é um motor de JavaScript. Vamos utilizar esses recursos para poder criar uma API RESTful.

Para seguir a aula, você deve instalar o Node.js no seu computador, baixando a ultima versão do Node.js no site nodejs.org. Como editor de texto, você deve utilizar o Visual Studio Code. Com isso, rodamos o comando para iniciar o projeto.

npm init

Depois de criar o projeto, vamos instalar o módulo express, que é um módulo que permite que você crie aplicações web.

npm install --save express

Criamos dois arquivos, um server.js e app.js.

server.js
const http = require('http')
const app = require('./app')

const port = process.env.PORT || 4000

const server = http.createServer(app)

server.listen(port)
app.js
const express = require('express')

const app = express()

app.use('/api', (req, res, next) => {
res.status(200).json({
message: 'Hello word!'
})
})

module.exports = app

... e após rodar o comando node server.js e acessar o endereço http://localhost:4000/api, você verá o retorno da mensagem Hello word!.

A aula para por um momento, 30 minutos de intervalo até as 10:30h.

Voltamos fazer uma nova rota para produtos, que será a rota /products.

\api\routes\products.js
const express = require('express')
const router = express.Router()

router.get('/', (req, res, next) => {
res.status(200).json({
message: 'Handling GET requests to /products'
})
})

router.post('/', (req, res, next) => {
res.status(201).json({
message: 'Handling POST requests to /products'
})
})

router.get('/:productId', (req, res, next) => {
const id = req.params.productId
if (id > 0) {
res.status(200).json({
message: 'Handling GET requests to /products/' + id,
id: id
})
} else {
res.status(404).json({
message: 'Product not found'
})
}
})

module.exports = router

A aula para para o almoço, as 12h, e voltamos as 13:30h.

Fizemos mais uma classe igual a do produto, chamada ordens.

Depois disso instalamos o nodemon, que é um serviço que monitora o nosso projeto e reinicia o servidor quando houver alguma alteração.

npm install --save nodemon

Criamos também no arquivo package.json o comando para rodar o servidor.

...
"version": "1.0.0",
"description": "Exemplo de aula para o curso de NodeJS",
"main": "index.js",
"scripts": {
"start": "nodemon server.js"
}
...
"keywords": [
"node",
...

Baixamos também o morgan, que é um módulo que permite que você veja o que está acontecendo no servidor.

npm install --save morgan

E vamos baixar o body-parser, que é um módulo que permite que você trabalhe com o corpo da requisição.

npm install --save body-parser

Depois de instalar esses pacotes, fizemos alguns ajustes para entender como que a requisição vem até a aplicação. Além disso, configuramos uma regra sobre cors.

Instalamos o MongoDB, e a aula acabou as 17h.