Sie sind auf Seite 1von 9

EJEMPLO: HTML5+NODEJS+MYSQL

Se debe crear una estructura de archivo desde NODEJS como se muestra a


continuación

En la carpeta conectar debemos crear un archivo llamado ejercicio 17.js

En la carpeta public vamos a crear tres archivos: Alta (insertar), consulta e index
La carpeta node_modules tiene instalado previamente el módulo de MYSQL para
nodeJS
Los archivos HTML5 que se deben configurar como interfaz para comunicarse con
NodeJS y establecer la comunicación con MYSQL tienen la siguiente estructura:

Index

Alta
Consulta

El archivo principal (ejercicio18.js) tiene la siguiente estructura


Lo primero que hacemos es requerir el módulo 'mysql' mediante la función require:
var mysql=require('mysql');

Mediante la variable mysql llamamos a la función createConnection y le pasamos


un objeto literal inicializando las propiedades 'host','user','password' y 'database'.
Como dijimos ya creamos desde el PhpMyAdmin la base de datos 'base1':

var conexion=mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'base1'
});

Con la referencia a la conexión procedemos a llamar a connect para abrir la


conexión con el servidor de base de datos (si hay algún error la función anónima
traerá una referencia de dicho error):

conexion.connect(function (error){
if (error)
console.log('Problemas de conexion con mysql');
});

Desde Node.js capturamos la ruta indicada en el hipervínculo:


case 'public/creartabla': {
crear(respuesta);
break;
}

Luego se crean las funciones que interactúan con la base de datos en el mismo
archivo17.js
Crear las tablas de la base de datos base1
En la primer llamada de la función query le pasamos el comando SQL 'drop table if
exists articulos' para que si ya existía la tabla proceda a borrarla.

En la segunda llamada a query le pasamos el comando SQL 'create table articulos


...' para que se cree la tabla.

Siempre que llamamos a query debemos pasarle además del string con el
comando SQL un segundo parámetro que se trata de una función anónima que
nos retorna un eventual error y los resultados que genera el comando SQL
ejecutado.
Insertar
Cuando se presiona el botón 'Agregar' vemos que la propiedad action del
formulario tiene el valor 'alta':

<form method="post" action="alta">

Este valor lo capturamos desde nuestro programa de Node.js:

case 'public/alta': {
alta(pedido,respuesta);
break;
}
Procede a rescatar todos los datos del formulario y a llamar a la función query de
la variable conexion pasando el string con el comando SQL.

El segundo parámetro de la función es un objeto literal donde inicializamos todos


los campos de la tabla (menos el código de artículo ya que se genera
automáticamente).

Si bien en SQL no existe la palabra clave set tengamos en cuenta que la función
query procederá a generar un comando insert válido.
Listado de todos los productos
Respondemos al navegador con una página que generamos en forma dinámica.
El listado completo lo llamamos desde la página index.html:

<a href="listado">Listado completo de articulos</a></p>

Desde Node.js capturamos la url que llega con el valor 'listado':

case 'public/listado': {
listado(respuesta);
break;
}
Consulta
Desde la página index.html procedemos a solicitar la página estática
consulta.html:

<a href="consulta.html">Consulta de un articulo por codigo</a></p>

Esta página estática solicita que se ingrese el código de artículo y procede a


enviarlo al servidor indicando en la propiedad action del elemento 'form' el valor
'consultaporcodigo':

<form method="post" action="consultaporcodigo">

En Node.js capturamos este valor:

case 'public/consultaporcodigo': {
consulta(pedido,respuesta);
break;
}

Y llamamos a la función consulta donde rescatamos los valores del formulario y


procedemos a llamar al comando SQL select con la clausula where indicando el
código que cargó el operador en el formulario HTML:

Al probar la aplicación debe aparecer que el servidor ha iniciado


Y se puede probar por el puerto 8888