17 jul

instalar mongodb en OS X y un ejemplo con Node.js

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 :)



Comments are closed.



Contacto