Saludos a todos los lectores, en este post les voy a resolver la duda sobre el módulo de consultas MYSQL para Node.JS, y no solo les voy a mostrar cómo se hace, si no que también les voy a recomendar una buena práctica, que aprendí de mi experiencia personal. Espero les sirva.
Módulo de consultas
El módulo se compone de tres partes partes, la primera es el código que consulta el módulo, luego está el módulo de consultas y por último están los queries, donde cada uno es un archivo independiente.
El módulo de consultas lo voy a nombrar database.js y estará en un directorio de nombre modules. Este modulo tiene un runquery, y unos prototipos para los tipos de consultas, en este caso es getSingleData y saveSingleData, estos sirven para obtener datos y el otro es para guardar datos.
Código :
// dependencies var mysql = require('mysql'); var queries = require('./queries'); // run query to db var dbConfig = { host:'localhost', user:'diegoug', password:'12345', database:'test' }; var runQuery = function(Query,Data,callback){ var connection = mysql.createConnection(dbConfig); connection.connect(function(err) { if (err) throw err; }); connection.query(Query,Data,function(err, res){ if (err) throw err; if (callback){ callback(res); } } ); connection.end(); } // module var DB = function(config){ config = config || {}; } DB.prototype.getSingleData = function(data,callback){ var Query = queries.SQLGETSINGLEDATA; var Data = [data]; runQuery(Query,Data,function(res){ res = res.pop(); callback(res); }); } DB.prototype.saveSingleData = function(data){ var Query = queries.SQLSAVESINGLEDATA; var Data = data; runQuery(Query,Data); } module.exports = DB;
El módulo de queries lo voy a nombrar queries.js y esta al mismo nivel. Si se fijan, aquí en los queries el hay un placeholder "?", esto es porque la librería MYSQL que estoy usando nos permite remplazar los datos que llegan hay, y esto ocurre en connection.query(Query,Data... de database.js. Veámoslo.
Código :
var SQLGETSINGLEDATA = "SELECT * " + "FROM tabla " + "WHERE nombre = ? " + "ORDER BY id " + "DESC " "LIMIT 1 "; exports.SQLGETSINGLEDATA = SQLGETSINGLEDATA; var SQLSAVESINGLEDATA = "INSERT INTO tabla ( " + "nombre , apellidos, edad, " + "direccion, correo, telefono, celular) " + "VALUES (?,?,?,?,?,?,?)"; exports.SQLSAVESINGLEDATA = SQLSAVESINGLEDATA;
Y el código que consulta la base de datos lo voy a nombrar consulta.js y está al mismo nivel que el directorio de modules. Si ustedes tienen la tabla con estos campos todo será ejecutado y será consultado por el modulo runquery en database.js. Al final les mostrará en consola el nombre "diego".
Código :
// dependencies var DB = require('./modules/database'); var Database = new DB(); Database.saveSingleData(["diego","uribe",26,"calle","diego@",123432,31432]); Database.getSingleData(1,function(res){ console.log(res.nombre); });
Les recomiendo ajustar este modulo a sus propias necesidades. Este modulo puede ser mejorado, cuando tenga una mejor versión les publico de nuevo.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por toribio el 24 de Abril de 2014
Por gabriel gonzalez el 01 de Septiembre de 2014
Por diegoug el 01 de Septiembre de 2014
gabriel gonzalez-blog :
Tanto como colocar un evento no, lo que puedes hacer es un evento independiente para cuando graban o algo como esto:
Otra respuesta
Por gabriel gonzalez el 01 de Septiembre de 2014
Por maczy el 12 de Febrero de 2015
Uso Express 4.9.5 y Node.js en la version 0.10.
Saludos.
Por ALVARO CABRERA B. el 10 de Julio de 2015
Por ALVARO CABRERA B. el 10 de Julio de 2015