O Node.js é um interpretador de código JavaScript que funciona do lado do servidor. Esta plataforma permite aos programadores o desenvolvimento de aplicações em rede, em tempo real e de alta escalabilidade, de uma forma simples e rápida. O Node.js é baseado no interpretador V8 da Google.
Depois da instalação das dependências e criação de servidor, hoje vamos criar toda a estrutura de aplicação, definindo as Routes, os Controllers e o Modelo.
Organização da Aplicação (MVC)
A nossa aplicação deverá seguir o “design” MCV. M de Model (código para o nosso modelo de base de dados), V de View (layout) e C de controllers (parte lógica da app (Como a app lida com as solicitações recebidas e as respostas enviadas).
Existem também as Routes que indicam ao cliente (browser ou app mobile) qual o controller a usar, de acordo com o url/path solicitado.
Dentro da nossa pasta smartphones_app vamos então criar a seguinte estrutura (podem usar o comando mkdir -p controllers models routes views)
- controllers
- models
- routes
- views
Criar Modelo
Vamos começar por definir o nosso MODEL. Para isso vamos criar, dentro do diretório models, um ficheiro com o nome smartphones.model.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
let SmartphoneSchema = new Schema({
nome: {type: String, required: true, max: 100},
marca: {type: Number, required: true},
});
// Exportar o modelo
module.exports = mongoose.model('Smartphone', SmartphoneSchema);
Ao exportarmos o nosso modelo, podemos usá-lo em outros ficheiros do projeto. Com isto temos a parte M do design MVC concluída!
Criar Routes
Vamos criar, dentro do diretório routes, um ficheiro com o nome smartphones.route.js e colocar o seguinte código:
const express = require(‘express’);
const router = express.Router();
// Colocar controller que ainda não foi criado
const smartphone_controller = require(‘../controllers/smartphone.controller’);
// teste simples
router.get(‘/testar’, smartphone_controller.test);
module.exports = router;
Criar Controllers
const Smartphone = require('../models/smartphones.model');
exports.test = function (req, res) {
res.send('Olá! Teste ao Controller');
};
Vamos agora ao ficheiro principal (index.js) e adicionar a route.
const express = require('express');
const bodyParser = require('body-parser');
const smartphone = require('./routes/smartphones.route'); // Importa rota
const app = express();
app.use('/smartphones', smartphones);
let porto = 8000;
app.listen(porto, () => {
console.log('Servidor em execução no porto' + porto);
});
Testar
Para testarem basta usar o endereço localhost:8000/smartphones/testar (definido na Route). Se o resultado for o seguinte, então a sua primeira Route está a funcionar.
E o por hoje é tudo. Este tutorial é baseado no apresentado aqui. Num próximo tutorial vamos criar a base de dados e ligar o projeto à base de dados. Por fim, teremos também de criar os endpoints, que implementarão as funções definidas no CRUD.
Leia também…