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.
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.