sĂĄbado, 20 de agosto de 2016

Ejemplo Bluemix: Hola Mundo

Para empezar tienes que tener tĂș ambiente de desarrollo instalado!!!!!
NOTA: Recuerda, estoy haciendo un ejemplo sobre un ambiente de desarrollo windows.

Listo, primer paso.
Crea un directorio para trabajar, por ejemplo:

cd c:\
mkdir trabajo
cd trabajo

Ahora ejecuta el siguiente comando:
npm init

completa la informaciĂłn que te pide el comando:





La información que viene entre parentesis en cada renglón es información por defecto de la aplicación. Después de ingresar toda la información, va a confirmar que la información que ingresaste es correcta:



 Ahora crea el archivo server.js con un editor de texto cualquiera (es muy importante que se llame server.js, sino no funcionarĂĄ). Por ejemplo notepad e ingresa el siguiente cĂłdigo:

var express = require("express"); //requiere el paquete express de nodejs
var app = express();   //la aplicaciĂłn utiliza express

var serverPort = 3000; //El puerto por el cual recibirĂĄ peticiones la aplicaciĂłn
var serverHost = 'localhost'; //nombre del servidor

var server = app.listen(serverPort, serverHost, function() { //crea una aplicaciĂłn escuchando con la informaciĂłn que indiquemos
    var host = server.address().address; //obtiene la direcciĂłn del servidor
    var port = server.address().port; //obtiene el puerto por el cual esta escuchando
    console.log('Recibiendo peticiones en http://%s:%s', host, port); //despliega mensaje en consola
});

Ya que hemos indicado que la aplicaciĂłn requiere express ahora necesitamos instalar el paquete, de la siguiente forma:

npm install express --save


AsĂ­ se instalan todos los paquetes en NodeJS, estos puedes ser creados por terceros o nosotros y los puedes encontrar en: https://www.npmjs.com/

Ahora ejecuta tĂș aplicaciĂłn con el siguiente comando:
npm start

La aplicaciĂłn no hace mĂĄs que mandar el mensaje a consola.




Ahora agregaremos la funciĂłn get de html al archivo js que hemos creado. Anexa el siguiente cĂłdigo:

app.get('/', function(req, res) {
    res.send('Hola mundo');
});

Los métodos que acepta una pågina cualquiera en internet son:
  •  Post, todos los parĂĄmetros pasan ocultos
  • Get, todos los parĂĄmetros pasan en la url
NOTA: MĂĄs informaciĂłn en: http://www.w3schools.com/tags/ref_httpmethods.asp
Ahora el cĂłdigo se debe ver como sigue:

var express = require("express");
var app = express();

var serverPort = 3000;
var serverHost = 'localhost';
app.get('/', function(req, res) {
    res.send('Hola mundo');
});

var server = app.listen(serverPort, serverHost, function() {
    var host = server.address().address;
    var port = server.address().port;
    console.log('Recibiendo peticiones en http://%s:%s', host, port);
});

Ejecuta nuevamente la aplicaciĂłn:
npm start

La salida en consola sigue siendo la misma:



Abre el navegador de tĂș preferencia y ve a la URL que aparece en consola. La salida en el navegador debe ser similar a la siguiente:



Listo!!!! Ya tienes tĂș primer ejemplo en nodejs

Ahora modificaremos nuestro ejemplo y lo subiremos a Bluemix!!!!

 1. Abre tĂș cuenta de bluemix, sino la haz abierto aun hazlo desde aquĂ­.
2. MĂłdifica server.js de la siguiente forma:

var express = require("express");
var app = express();

var serverPort = process.env.VCAP_APP_PORT || 3000; //Estamos indicando que utilice la variable de ambiente de bluemix para el puerto
var serverHost = process.env.VCAP_APP_HOST || 'localhost';//Estamos indicando que utilice la variable de ambiente de bluemix para el host
app.get('/', function(req, res) {
    res.send('Hola mundo');
});

var server = app.listen(serverPort, serverHost, function() {
    var host = server.address().address;
    var port = server.address().port;
    console.log('Recibiendo peticiones en http://%s:%s', host, port);
});
Para ver mĂĄs informaciĂłn sobre las variables de ambiente de Bluemix, las puedes encontrar aquĂ­.

Ahora crea un archivo llamado manifest.yml en la carpeta que estas usando para tĂș ejemplo con el siguiente cĂłdigo:

---
applications:
- name : ejemplonodejspmb
  instances : 1
  memory : 256M

En la lĂ­nea name estamos indicando como se llamarĂĄ nuestra aplicaciĂłn en bluemix. Debe ser Ășnico en todo bluemix, por lo cual no debes copiarlo literalmente.
En la linea instances estamos indicando cuantas instancia de nuestra aplicaciĂłn tendremos (para resilencia)
En la lĂ­nea memorĂ­a estamos indicando la memoria que tendrĂĄ cada instancia

Lo anterior es lo mĂĄs esencial, pero sĂ­ necesitas explorar mĂĄs, la documentaciĂłn de cloud fundry es bastante extensa para este archivo.

Antes de publicar, conviene crear el archivo  .cfignore , sin el todos los archivos que componen la aplicaciĂłn serĂĄn cargados a la nube, Bluemix tiene la capacidad de integrar los paquetes que necesita tĂș aplicaciĂłn. Crea el archivo con el siguiente cĂłdigo para evitar que los paquetes de NodeJS sean cargados:

node_modules


Ahora vamos a desplegar a Bluemix nuestra aplicación, las regiones disponibles actualmente las puedes encontrar aquí. En mi caso desplegaré la aplicación en USA ejecutando el siguiente comando:

cf l -a api.ng.bluemix.net

NOTA: para ver otros comandos disponibles para CLI (Cloud Foundry Line Command, siempre se me olvida) estĂĄn disponibles aquĂ­.
Si tienes Ă©xito en ingresar debes ver una pantalla como esta:





 Ahora estamos listos para desplegar la aplicaciĂłn, ejecuta el siguiente comando desde el directorio donde se encuentra tĂș aplicaciĂłn:

cf push

Si tienes Ă©xito debes ver tĂș aplicaciĂłn en ejecuciĂłn en la consola de bluemix:

Haz click en VerApp:

Ahora puedes ver tĂș app con un subdominio en bluemix.

Listo!!!! Tienes el ejemplo de Hola mundo funcionando en la nube con una plataforma lista para trabajar!!!!!!



No hay comentarios:

Publicar un comentario