Aprenda IBM Bluemix con una simple aplicación de descarga de archivo Node.js

30-06-2014
PDF (220 KB)
 

Una introducción al ciclo de vida de la aplicación en Bluemix

06:52

Jay Allen

Computer Science Major

Software Developer, Software Group, Strategy, jStart Emerging Technologies

Jon Johnson

Computer Science Major

Regístrese para IBM Bluemix
Esta plataforma de nube contiene servicios gratuitos, tiempos de ejecución e infraestructura para ayudarlo a construir y desplegar rápidamente su próxima aplicación móvil o de web.

Este artículo le proporciona un vistazo rápido, manos a la obra de IBM® Bluemix™, la plataforma abierta de la nube de IBM para desarrollar y desplegar aplicaciones de web y móviles. El ejercicio usa los componentes más importantes de Bluemix a través un poco de código. Usted construirá una aplicación Node.js que sube un archivo e inserta los contenidos del archivo a una base de datos MySQL. Después se probará la aplicación y se verá la forma de administrarla a través de Bluemix. Otra razón por la que elegimos esta aplicación es que somos grandes aficionados de Node.js fans y aprovechamos todas las oportunidades para aprender más sobre él.

Lo que se necesita para construir una aplicación similar

 
  • Una cuenta Bluemix
  • Familiaridad básica con Node.js
  • La interfaz de línea de comando de Cloud Foundry V6 para su sistema.
  • El código fuente para la aplicación de descarga de archivos de Node MySQL de DevOps Services (disponible también en el repositorio IBM jStart GitHub )

Paso 1. Clone la aplicación y prepárela para Bluemix

 
  1. Clone la aplicación de descarga de Node MySQL del repositorio IBM jStart GitHub:
     git clone https://github.com/ibmjstart/bluemix-node-mysql-upload.git

    Toda la lógica de la aplicación está contenida en app.js. En app.js, estamos usando algunos de los buenos módulos Node que facilitan el desarrollo de la aplicación de web (el framework de desarrollo de web Express y los creadores de plantillas Hogan para Express) y los módulos del sistema de archivos y MySQL para simplificar la base de datos y la manipulación de archivos:

    Haga clic para ver la lista de códigos

     var http = require('http'); var path = require('path'); var express = require('express'); var hogan = require('hogan-express'); var mysql = require('mysql'); var fs = require('fs');
  2. Agregue las piezas únicas de código que necesita para agregarlas a una aplicación para correrlas en Bluemix. A partir del ambiente de la aplicación, jale VCAP_APP_PORT, VCAP_APP_HOST y VCAP_SERVICES.

    VCAP_APP_HOST y VCAP_APP_PORT dígale a la aplicación qué puerto y host le asigna Bluemix a su aplicación. VCAP_SERVICES es un objeto JSON disponible a su aplicación cada vez que se vincula a un servicio Bluemix. La sección de credenciales es común para cada servicio y contiene toda la información que usted necesita para conectarse a ese servicio. Para el servicio Bluemix MySQL, es el nombre usual de la base de datos, puerto, ID del usuario y clave de acceso:

    Haga clic para ver la lista de códigos

     var port = (process.env.VCAP_APP_PORT || 3000); var host = (process.env.VCAP_APP_HOST || 'localhost'); // all environments app = express(); // check if application is being run in cloud environment if (process.env.VCAP_SERVICES) { var services = JSON.parse(process.env.VCAP_SERVICES); // look for a service starting with 'mysql' for (var svcName in services) { if (svcName.match(/^mysql/)) { var mysqlCreds = services[svcName][0]['credentials']; var db = mysql.createConnection({ host: mysqlCreds.host, port: mysqlCreds.port, user: mysqlCreds.user, password: mysqlCreds.password, database: mysqlCreds.name }); createTable(); } } }

    Se establecen tres rutas y todas usan un simple index.html como la vista. El mensaje para /upload lee el archivo, lo divide en líneas individuales e inserta las líneas en una base de datos MySQL.

    Haga clic para ver la lista de códigos

     // upload file app.post('/upload', function (req, res) { fs.readFile(req.files.file.path, 'utf8', function (err, data) { if (err) return res.json(err); // split file into array of non-empty Strings var posts = data.split(/\r\n?|\n/).filter(isNotEmpty); // insert posts into mysql db addPosts(posts, function (err, result) { if (err) return res.json(err); var msg = 'Added ' + result.affectedRows + ' rows.'; // display all posts getPosts(function (err, posts) { if (err) return res.json(err); res.render('index.html', {posts: posts, msg: msg}); }); }); }); });

    addPosts hace los insertos de la base de datos y getPosts regresa los mensajes de la base de datos para su uso en la vista index.html:

    Haga clic para ver la lista de códigos

     function addPosts(posts, cb) { var sql = 'INSERT INTO posts (text) VALUES ?'; var values = posts.map(function (post) { return [post]; }); db.query(sql, [values], function (err, result) { if (err) return cb(err); cb(null, result); }); } function getPosts(cb) { var sql = 'SELECT text FROM posts'; db.query(sql, function (err, result) { if (err) return cb(err); cb(null, result); }); }

Paso 2. Empuje la aplicación a Bluemix

 
  1. Instale la interfaz de la línea de comando Cloud Foundry V6 para su sistema si no lo ha hecho.
  2. Cambie el directorio app de la aplicación e inicie la sesión en Bluemix de su estación de trabajo. El comando de sintaxis es cf login -a API_URL. Su inicio de sesión luce así:
     C:\demo\bluemix-node-mysql-upload\app>cf login -a api.ng.bluemix.net

    Se le solicitará su nombre de usuario, clave de acceso, organización y espacio.
  3. Una vez que se inicia la sesión, cree el servicio MySQL que usará la aplicación Node. La sintaxis del comando es:
     cf create-service SERVICE PLAN SERVICE_INSTANCE

    El nombre del servicio es mysql, el plan es 100 y el nombre de la instancia de servicio es mysql-node-upload. Así que usted creará su servicio MySQL de esta forma:
     C:\demo\bluemix-node-mysql-upload\app>cf create-service mysql 100 mysql-node-upload
  4. Ahora viene la parte divertida. En lugar de tener que obtener un servidor, cargue el sistema operativo, Node, npm, MySQL y código parche y llenar interminables boletas de cambio etc., etc., etc., usted simplemente empuja su aplicación a Bluemix y deja que Bluemix maneje las partes desordenadas.

    Hemos incluido el archivo manifest.yml con la aplicación para agilizar el proceso. Establece el nombre de la aplicación, la memoria, el número de instancias y el servicio Bluemix MySQL por usar. Elija un nombre de host diferente para que la ruta de URL resultante no entre en conflicto con el URL de demostración (http://NodeMySQLUploadArticle.mybluemix.net):

    Haga clic para ver la lista de códigos

     --- applications: #Reference http://docs.cloudfoundry.com/docs/using/deploying-apps/manifest.html - name: NodeMySQLUpload #Application Name. Unique to the user's Space memory: 256M #The maximum memory to allocate to each application instance instances: 1 #The number of instances of the application to start host: NodeMySQLUploadArticle #Hostname for app routing. Unique to domain ng.bluemix.net. Change. path: . #Path to the application to be pushed command: node app.js #The command to use to start the application services: - mysql-node-upload #the already created mysql service

    A partir del directorio app que contiene app.js y el archivo manifest.yml, empuje su aplicación:
     cf push

    Cuando la aplicación esté corriendo, vaya a http://my-unique-hostname.mybluemix.net (donde my-unique-hostname es el host en el archivo de manifiesto). Suba un archivo de texto. ¡Funciona!
Screen capture shows the MySQL Upload application's UI on Bluemix

Haga clic para ampliar la imagen

Paso 3. Administre su aplicación a partir de Bluemix UI

 

Ahora que la aplicación está operando en Bluemix, usemos el Bluemix UI para echarle un vistazo a sus partes. Vaya a Bluemix e inicie la sesión. A partir del tablero de Bluemix, verá un mosaico que resume la aplicación. En un vistazo, puede ver el URL y los servicios ligados y que la aplicación está saludable y en operación:

Screen capture shows the MySQL Upload application status summary on Bluemix

Haga clic en el mosaico de la aplicación para ir a la aplicación de la página de vista general, donde puede explorar más sobre su aplicación.

Screen capture shows the MySQL Upload application overview page on Bluemix
  • Visite la página del tiempo de ejecución, donde podrá ajustar las instancias de su aplicación y memoria y ver la salud general de la aplicación.
  • Verifique los archivos y registros, donde podrá ver su código de aplicación desplegado y mirar los registros de errores de prueba y evaluación, salida estándar y salida del error.
  • También puede renombrar su aplicación, cambiar su URL, y pararla, reiniciarla y borrarla.

Conclusión

 

¡Eso es todo! En pocas palabras, escribió, desplegó, corrió y administró una aplicación en IBM Bluemix. Disfrute el resto de su exploración Bluemix.


Temas relacionados:Node.jsBluemixMySQL

Agregar un comentario

Nota: los elementos en HTML no son soportados dentro de los comentarios.


quedan 1000 caracteres

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing
ArticleID=977812
ArticleTitle=Aprenda IBM Bluemix con una simple aplicación de descarga de archivo Node.js
publish-date=06302014