MySQL con Node.js
(8)
Acabo de empezar a meterme en Node.js. Vengo de un fondo PHP, así que estoy acostumbrado a usar MySQL para todas mis necesidades de base de datos.
¿Cómo puedo usar MySQL con Node.js?
Aquí está el código de producción que puede ayudarle.
Paquete.json
{
"name": "node-mysql",
"version": "0.0.1",
"dependencies": {
"express": "^4.10.6",
"mysql": "^2.5.4"
}
}
Aquí está el archivo del servidor.
var express = require("express");
var mysql = require(''mysql'');
var app = express();
var pool = mysql.createPool({
connectionLimit : 100, //important
host : ''localhost'',
user : ''root'',
password : '''',
database : ''address_book'',
debug : false
});
function handle_database(req,res) {
pool.getConnection(function(err,connection){
if (err) {
connection.release();
res.json({"code" : 100, "status" : "Error in connection database"});
return;
}
console.log(''connected as id '' + connection.threadId);
connection.query("select * from user",function(err,rows){
connection.release();
if(!err) {
res.json(rows);
}
});
connection.on(''error'', function(err) {
res.json({"code" : 100, "status" : "Error in connection database"});
return;
});
});
}
app.get("/",function(req,res){-
handle_database(req,res);
});
app.listen(3000);
Referencia: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
Dado que este es un hilo viejo, simplemente agregando una actualización:
Para instalar el controlador de MySQL node.js:
Si ejecuta solo npm install mysql
, debe estar en el mismo directorio en el que ejecuta su servidor. Yo recomendaría hacerlo como en uno de los siguientes ejemplos:
Para la instalación global:
npm install -g mysql
Para instalación local:
1- package.json
a tu package.json
en las dependencias:
"dependencies": {
"mysql": "~2.3.2",
...
2- ejecutar npm install
Tenga en cuenta que para que las conexiones se realicen, también necesitará ejecutar el servidor mysql (que es independiente del nodo)
Para instalar el servidor MySQL:
Hay un montón de tutoriales que explican esto, y es un poco dependiente del sistema operativo. Simplemente vaya a google y busque how to install mysql server [Ubuntu|MacOSX|Windows]
. Pero en una frase: tienes que ir a http://www.mysql.com/downloads/ e instalarlo.
Echa un vistazo a la lista de módulos node.js
- node-mysql - Un módulo node.js que implementa el protocolo MySQL
- node-mysql2 - Otro controlador asíncrono JS puro. Pipeline, declaraciones preparadas.
- node-mysql-libmysqlclient - enlaces asíncronos de MySQL basados en libmysqlclient
node-mysql parece bastante simple:
var mysql = require(''mysql'');
var connection = mysql.createConnection({
host : ''example.org'',
user : ''bob'',
password : ''secret'',
});
connection.connect(function(err) {
// connected! (unless `err` is set)
});
Consultas:
var post = {id: 1, title: ''Hello MySQL''};
var query = connection.query(''INSERT INTO posts SET ?'', post, function(err, result) {
// Neat!
});
console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = ''Hello MySQL''
KnexJs se puede usar como un generador de consultas SQL tanto en Node.JS como en el navegador. Me resulta fácil de usar. Vamos a probarlo - Knex.js
$ npm install knex --save
# Then add one of the following (adding a --save) flag:
$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ npm install mariasql
$ npm install strong-oracle
$ npm install oracle
$ npm install mssql
var knex = require(''knex'')({
client: ''mysql'',
connection: {
host : ''127.0.0.1'',
user : ''your_database_user'',
password : ''your_database_password'',
database : ''myapp_test''
}
});
Puedes usarlo así
knex.select(''*'').from(''users'')
o
knex(''users'').where({
first_name: ''Test'',
last_name: ''User''
}).select(''id'')
También puede probar un nuevo esfuerzo conocido como Node.js DB que tiene como objetivo proporcionar un marco común para varios motores de base de datos. Está construido con C ++ por lo que el rendimiento está garantizado.
Específicamente, podría usar su controlador db-mysql para el soporte de MySQL de Node.js.
conecte la base de datos mysql instalando una biblioteca. Aquí, elegí el módulo node-mysql estable y fácil de usar.
npm install [email protected]
var http = require(''http''),
mysql = require(''mysql'');
var sqlInfo = {
host: ''localhost'',
user: ''root'',
password: ''urpass'',
database: ''dbname''
}
client = mysql.createConnection(sqlInfo);
client.connect();
node-mysql es probablemente uno de los mejores módulos que se utilizan para trabajar con la base de datos MySQL, que se mantiene activamente y está bien documentado.
var express = require(''express'');
var router = express.Router();
/* GET home page. */
var mysql = require(''mysql'');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "****",
database: "nodejs"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
module.exports = con;
Siga el enlace http://datainflow.com/nodejs-mysql-connectivity/