Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 45 – API JavaScript, Node.js e Express – Express Generator – Scaffolding automático

Imagem destacada da aula de API

Introdução (3 min)

Imagine construir uma casa. Você poderia fazer cada tijolo à mão, mas seria muito mais rápido usar formas pré-fabricadas. O Express Generator é como um conjunto dessas formas para suas APIs, permitindo criar estruturas de projetos completas em segundos.

Este recurso é fundamental para o desenvolvimento ágil de APIs modernas, acelerando o processo e garantindo uma base sólida. Nesta aula, vamos explorar o poder do Express Generator, construindo um esqueleto de aplicação pronto para receber suas funcionalidades.

Dentro do ecossistema Node.js/Express, o Generator é uma ferramenta de linha de comando que automatiza a configuração inicial do projeto, eliminando tarefas repetitivas e permitindo que você foque na lógica da sua aplicação.

Conceito Fundamental (7 min)

O scaffolding, ou arcabouço, é uma técnica que gera automaticamente a estrutura básica de um projeto de software. O Express Generator utiliza esse conceito para criar diretórios, arquivos e códigos iniciais para aplicações Express.js.

Em produção, o scaffolding é usado para garantir consistência entre projetos, acelerar o desenvolvimento e reduzir erros humanos. Ele se integra com outras tecnologias, como gerenciadores de pacotes (npm, yarn) e frameworks front-end (React, Angular, Vue.js), facilitando a construção de aplicações full-stack.

A principal vantagem do Express Generator é a agilidade. A desvantagem é que, para projetos muito específicos, pode ser necessário customizar bastante o código gerado. Entretanto, o tempo economizado na configuração inicial compensa esse esforço na maioria dos casos.

Implementação Prática (10 min)

Vamos criar um projeto com o Express Generator. Primeiro, instale-o globalmente:

npm install -g express-generator

Agora, crie um novo projeto chamado myapp:

express myapp

Acesse o diretório do projeto e instale as dependências:

cd myapp
npm install

A estrutura do projeto será criada, incluindo arquivos essenciais como app.js, package.json e pastas como routes e views. Observe o arquivo app.js, o coração da aplicação:

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users');

var app = express();

// view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade');

app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter); app.use('/users', usersRouter);

// catch 404 and forward to error handler app.use(function(req, res, next) { next(createError(404)); });

// error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page res.status(err.status || 500); res.render('error'); });

module.exports = app;

Para iniciar a aplicação, execute:

DEBUG=myapp:* npm start

A aplicação estará disponível em http://localhost:3000/.

Exercício Hands-On (5 min)

Crie uma nova rota /produtos que retorne um array de produtos em formato JSON. Utilize o Express Generator para criar a estrutura básica da rota e, em seguida, implemente a lógica para retornar os dados.

Solução:

  • Crie um arquivo produtos.js dentro da pasta routes.
  • Adicione o seguinte código ao arquivo produtos.js:
var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) { res.json([{ nome: 'Produto A', preco: 10 }, { nome: 'Produto B', preco: 20 }]); });

module.exports = router;

  • No arquivo app.js, adicione a seguinte linha após a declaração de usersRouter :
var produtosRouter = require('./routes/produtos');

  • Ainda em app.js, adicione a seguinte linha após app.use('/users', usersRouter);:
app.use('/produtos', produtosRouter);

Reinicie a aplicação e acesse http://localhost:3000/produtos. Você verá o JSON com os produtos.

Parabéns! Você aprendeu a usar o Express Generator para construir APIs rapidamente. Explore a documentação oficial do Express.js para aprofundar seus conhecimentos.

🚀 Pronto para a próxima aula?

Continue sua jornada no desenvolvimento de APIs e domine Node.js & Express!

📚 Ver todas as aulas