Siguiendo con las prácticas node.js, vamos a instalar y probar la base de datos MongoDB, Simplemente vamos a hacer una instalación, carga de datos y luego un server que muestre los datos en una web
Una herramienta útil para OSX:Brew
Probablemente hubiera sido de los más util empezar por este programa, pero lo descubrí luego de estar trabajando en Node.js y estos tutoriales y resultó ser de lo más útil y sencillo. Homebrew es una aplicación que permite la instalación y gestión de otros programas
Perfectamente se puede saltear este parte si ya tenés brew instalado, sino lo tenés ni te interesa, podés instalar mongodb descargando e instalandolo como cualquier otro paquete desde su página oficial
Para instalar brew necesitás antes tener instalado el xquartz y la command line tool
Para el primero bajate el dmg de aca, instalalo, deslogeate, y luego volvé a logearte
Para el segundo bajalo desde aca, ciertamente es necesario tener un id de developer en el sitio de Apple. Algo que va a ser muy necesario siempre
Luego podrás instalar brew con la siguiente linea en la consola
ruby -e “$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)”
No es necesario usar SUDO, simplemente se instalará en /usr/local
instalar mongodb
Luego de tener instalado homebrew, abrimos la consola y tipeamos
brew install mongodb
Ahi se instalará mongodb:
To have launchd start mongodb at login: ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents Then to load mongodb now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist Or, if you don’t want/need launchctl, you can just run: mongod
Trabajando con Mongo DB
Para hacer andar la db ejecutamos en consola mongod
De esa manera tenemos la base de datos corriendo en nuestro localhost en el puerto 27017. Luego de arrancar la db podemos abrir un editor de mongo tipeando mongo en otra instancia de la consola
para probar, allí podemos cargar un dato a la db:
db.test.save( { a: 1 } )
> db.test.find()
el método find nos devolverá el dato recién cargado. Por ejemplo:
{ “_id” : ObjectId(“51ddaceb9639ad48df5a18db”), “a” : 1 }
Usando node.js
Vamos a cargar un dato sencillo, usando el clásico ejemplo de personas. En la consola donde ejecutamos la sintaxis de mongo vamos a cargar unos datos:
db.personas.insert({nombre:’pepe’,apellido:’gonzalez’})
db.personas.find()
vamos a instalar la libreria de node mongodb:
sudo npm install mongodb -g
luego creamos un archivo app.js, con el código muy similar al primer ejemplo, pero cargando toda la lógica de mongo:
var mongodb = require('mongodb');
var http = require("http");
var serverdb = new mongodb.Server("127.0.0.1", 27017, {});
var dbTest = new mongodb.Db('test', serverdb, {})
var data;
var elservidor = function(request, response) {
response.writeHead(200, {"Content-Type": "text/html"});
for(i=0;i<data.length;i++){
response.write(data[i].nombre);
response.write("
")
response.write(data[i].apellido);
}
response.end();
}
dbTest.open(function (error, client) {
if (error) throw error;
var collection = new mongodb.Collection(client, 'personas');
collection.find().toArray(function(err, docs) {
data = docs;
});
http.createServer(elservidor).listen(8888);
});
Podemos ver que primero llamamos la librería mongodb, luego se conecta al servidor(serverdb), luego con la base de datos (dbTest), y luego el método dbTest.open() obtiene la colección de ‘personas’. estas son guardadas como un Array en la variable data. Luego se crea el server que ejecuta la función “elservidor” que se encarga de parsear la variable data y mostrarla en el documento html.
Luego de esto simplemente:
node app.js
Vamos a localhost:8888, y allí veremos los datos de personas.
Un paso mas en la batalla 🙂