Primeros pasos RESTful API con Node js 2/2

abrahamjso
Node & Angular JS
Published in
2 min readNov 13, 2014

En la entrada anterior , vimos los primeros pasos de como crear un servicio RESTful usando nodejs y express, en este capitulo veremos el uso de rutas y la integración de mongoose(mongodb) para así terminar nuestro servicio de reportes.

Creando modelos

El crear el modelo, nos ayuda a definir los objetos de nuestra aplicación, como así también la integración con la base de datos (ver MVC). Usando mongoose nos ayudará a trabajar en forma de esquemas(hay que aclarar que MongoDB no lo hace, pero se emplea en mongoose para facilitar el mapeo de las búsquedas).
Nosotros estamos interesados en crear un sistemas de reportes, así que nuestro modelo será reporte y su esquema será el siguiente:

Report:
id: unique numeric|alphanumeric
name: string
description: string
created: date

Nuestro esquema de reporte será sencillo. Todos los modelos que se vayan a crear los pondremos en nutro directorio models, esto nos ayudará a tener todo más organizado.

//models/report.jsvar mongoose = require(‘mongoose’);
var Schema = mongoose.Schema;
//objeto modelo de mongoose
var reportSchema = new Schema({
name: String,
description: String,
created: {type: Date, default: Date.now} //definimos la fecha
});
//Indicamos que podremos cargarlo de otro lugar
module.exports = mongoose.model(‘Report’, reportSchema);

Creando rutas

En la entrada anterior, ya habíamos definido las rutas que emplearíamos e hicimos un pequeño ejemplo que corre en server.js, ahora terminaremos de construirlas, empleando POST, GET, DELETE & PUT dependiendo cuál sea el caso y las manejaremos dentro de nuestro folder routes.

Así que armaremos nuestro esqueleto definiéndolo en un archivo llamado reports.js

//routes/reports.jsvar Report = require(‘../models/report’);//Agregamos el modelo 
var express = require(‘express’);
//config Rutes
var router = express.Router();
router.route(‘/reports’).get(function(req, res){
res.json({ message: ‘Hi, all the reports…!’});
});
/*
router.route(‘/reports’).post(function(req, res){
//code
});
router.route(‘/reports/:id’).get(function(req, res){
//code
});
router.route(‘/reports/:id’).delete(function(req, res){
//code
});
router.route(‘/reports/:id’).put(function(req, res){
//code
});
*/
module.exports = router;

Antes de continuar hagamos un pequeño test, para ver si esta funcionando, para esto tendremos que cambiar un poco nuestro archivo server.js, donde agregaremos las rutas, bodyparser que es para parsear las peticiones, removeremos nuestro pequeño ejemplo.

//server.js//libraries
var express = require(‘express’);
var bodyParser = require(‘body-parser’);
var mongoose = require(‘mongoose’);
var reports = require(‘./routes/reports’); //Own Routes
//init app
var app = express();
//Middleware
app.use(bodyParser.json()); //parse request Bodies
app.use(bodyParser.urlencoded());
app.use(‘/api’, reports); //Own routes, we add the middleware
//Start the server
var port = process.env.PORT || 3000;
app.listen(port);
console.log(‘Server listening in the port: ‘ + port);

Una vez agregado, corremos el nuestra terminal el comando npm server y haremos una petición get a:

http://localhost:3000/api/reports

--

--

abrahamjso
Node & Angular JS

Techie, Software Developer, Entrepreneur, Pizza, Taco Burrito, Gorditas, Tostadas, Frijoles… Lover!