Acabo de empezar a entrar en Node.js. Vengo de un fondo PHP, así que estoy bastante acostumbrado a usar MySQL para todas mis necesidades de base de datos.
¿con qué terminaste yendo? a continuación hay buena información, me interesaría saber cuáles fueron sus experiencias
Landon
77
@Landon, en realidad fue con node-mysql por algunas razones, principalmente porque está en un desarrollo bastante activo y parece ser el más utilizado. También me gusta mucho la multipleStatementsfunción.
crawf
@crawf ¿Qué prefieres, PHP o Node.js? Me metí en PHP / MySQL, pero estoy pensando en cambiar al nodo, ya que se sentiría mucho más natural teniendo en cuenta que la sintaxis es sintaxis JS
oldboy
1
@Anthony Preferencia personal, supongo, depende del ecosistema en el que se está desarrollando, si está en un equipo, etc. Esta publicación original es antigua, y mucho ha cambiado en el panorama Node, donde es mucho más común para el frente y trabajo de fondo. Diría que si tienes tiempo para probar Node, y es genial emparejado con cosas como socket.io para sockets web en tiempo real.
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'
+1 para node-mysql también. ¿Qué puede ser mejor que simplemente requirecrear una biblioteca de JavaScript?
Alex K
44
@KevinLaity Tenía la impresión de que node-mysql todavía no tiene implementadas declaraciones preparadas. La sintaxis solo se ve similar . En cambio, parece que, por ahora, se están escapando caracteres especiales.
funseiki
44
Además, puede obtener el nombre de su base de datos agregando 'base de datos' al objeto de conexión
felipekm
29
node-mysql es probablemente uno de los mejores módulos utilizados para trabajar con la base de datos MySQL que se mantiene activamente y está bien documentado.
Dado que este es un hilo antiguo que solo agrega una actualización:
Para instalar el controlador MySQL node.js:
Si ejecuta solo npm install mysql, debe estar en el mismo directorio donde ejecuta su servidor. Aconsejaría hacerlo como en uno de los siguientes ejemplos:
Para instalación global:
npm install -g mysql
Para instalación local:
1- Añádelo a tu package.jsonen las dependencias:
"dependencies":{"mysql":"~2.3.2",...
2- correr npm install
Tenga en cuenta que para que las conexiones sucedan, también deberá ejecutar el servidor mysql (que es independiente del nodo)
Para instalar el servidor MySQL:
Hay un montón de tutoriales que explican esto, y depende un poco del sistema operativo. Solo ve a google y busca how to install mysql server [Ubuntu|MacOSX|Windows]. Pero en una oración: tienes que ir a http://www.mysql.com/downloads/ e instalarlo.
Este código parece estar jodido ... muchos errores incluyendoCannot read property 'release' of undefined
Pacerier
4
Imo, deberías probar MySQL Connector / Node.js, que es el controlador oficial de Node.js para MySQL. Ver ref-1 y ref-2 para una explicación detallada. He intentado mysqljs / mysql que está disponible aquí , pero no encuentro documentación detallada sobre clases, métodos, propiedades de esta biblioteca.
Así que cambié al estándar MySQL Connector/Node.jscon X DevAPI, ya que es una biblioteca de cliente asincrónica basada en Promise y proporciona buena documentación. Eche un vistazo al siguiente fragmento de código:
const mysqlx =require('@mysql/xdevapi');const rows =[];
mysqlx.getSession('mysqlx://localhost:33060').then(session =>{const table = session.getSchema('testSchema').getTable('testTable');// The criteria is defined through the expression.return table.update().where('name = "bar"').set('age',50).execute().then(()=>{return table.select().orderBy('name ASC').execute(row => rows.push(row));});}).then(()=>{
console.log(rows);});
KnexJs se puede utilizar 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 mssqlvar knex =require('knex')({
client:'mysql',
connection:{
host :'127.0.0.1',
user :'your_database_user',
password :'your_database_password',
database :'myapp_test'}});
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 bases 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 Node.js MySQL .
node-db ya no es compatible (inactivo durante 8 meses, usa node-waf en desuso) y la instalación falló.
Yogu
18
"Está construido con C ++, por lo que el rendimiento está garantizado": simplemente usar C ++ no garantiza el rendimiento, aún debe programarse correctamente.
developerbmw
No solo no es compatible con node-db, sino que el enlace está inactivo, redirigido a algún tipo de sitio de anuncios en este momento. Votación a favor.
nurdglaw
2
@Mariano, Link Down
Pacerier
0
conecta la base de datos mysql instalando una biblioteca. aquí, elegimos el módulo nodo-mysql estable y fácil de usar.
npm install mysql@2.0.0-alpha2
var http =require('http'),
mysql =require('mysql');var sqlInfo ={
host:'localhost',
user:'root',
password:'urpass',
database:'dbname'}
client = mysql.createConnection(sqlInfo);
client.connect();
Hasta donde yo sé, las versiones alfa nunca deben considerarse como "estables". Corrígeme si estoy equivocado. Alpha tiene la posibilidad de cambiar drásticamente su API antes de pasar a la final, lo que es altamente no deseado en el código de producción (e incluso de desarrollo). Es decir, si la numeración de la versión sigue las pautas de semver.org .
Robin van Baalen
1
Las comillas "inteligentes" ('') resultan no ser tan inteligentes en los archivos js.
glifo
Me gusta este comentario porque muestra dónde poner el nombre de la base de datos
Boris Ivanov
0
Puede omitir el ORM, los constructores, etc. y simplificar su administración de DB / SQL usando sqlery sqler-mdb.
-- create this file at: db/mdb/setup/create.database.sqlCREATEDATABASEIFNOTEXISTS sqlermysql
const conf ={"univ":{"db":{"mdb":{"host":"localhost","username":"admin","password":"mysqlpassword"}}},"db":{"dialects":{"mdb":"sqler-mdb"},"connections":[{"id":"mdb","name":"mdb","dir":"db/mdb","service":"MySQL","dialect":"mdb","pool":{},"driverOptions":{"connection":{"multipleStatements":true}}}]}};// create/initialize managerconst manager =newManager(conf);await manager.init();// .sql file path is path to db functionconst result =await manager.db.mdb.setup.create.database();
console.log('Result:', result);// after we're done using the manager we should close it
process.on('SIGINT',asyncfunction sigintDB(){await manager.close();
console.log('Manager has been closed');});
multipleStatements
función.Respuestas:
Echa un vistazo a la lista de módulos de node.js
node-mysql parece bastante simple:
Consultas:
fuente
require
crear una biblioteca de JavaScript?node-mysql es probablemente uno de los mejores módulos utilizados para trabajar con la base de datos MySQL que se mantiene activamente y está bien documentado.
fuente
Dado que este es un hilo antiguo que solo agrega una actualización:
Para instalar el controlador MySQL node.js:
Si ejecuta solo
npm install mysql
, debe estar en el mismo directorio donde ejecuta su servidor. Aconsejaría hacerlo como en uno de los siguientes ejemplos:Para instalación global:
Para instalación local:
1- Añádelo a tu
package.json
en las dependencias:2- correr
npm install
Tenga en cuenta que para que las conexiones sucedan, también deberá ejecutar el servidor mysql (que es independiente del nodo)
Para instalar el servidor MySQL:
Hay un montón de tutoriales que explican esto, y depende un poco del sistema operativo. Solo ve a google y busca
how to install mysql server [Ubuntu|MacOSX|Windows]
. Pero en una oración: tienes que ir a http://www.mysql.com/downloads/ e instalarlo.fuente
npm install --save mysql
lo instalará, agréguelo a supackage.json
automáticamenteAquí hay un código de producción que puede ayudarlo.
Package.json
Aquí está el archivo del servidor.
Referencia: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
fuente
Cannot read property 'release' of undefined
Imo, deberías probar MySQL Connector / Node.js, que es el controlador oficial de Node.js para MySQL. Ver ref-1 y ref-2 para una explicación detallada. He intentado mysqljs / mysql que está disponible aquí , pero no encuentro documentación detallada sobre clases, métodos, propiedades de esta biblioteca.
Así que cambié al estándar
MySQL Connector/Node.js
conX DevAPI
, ya que es una biblioteca de cliente asincrónica basada en Promise y proporciona buena documentación. Eche un vistazo al siguiente fragmento de código:fuente
KnexJs se puede utilizar 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
Puedes usarlo así
o
fuente
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 bases 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 Node.js MySQL .
fuente
conecta la base de datos mysql instalando una biblioteca. aquí, elegimos el módulo nodo-mysql estable y fácil de usar.
Para el ejemplo de conexión y consulta de MySQL de NodeJS
fuente
Puede omitir el ORM, los constructores, etc. y simplificar su administración de DB / SQL usando
sqler
ysqler-mdb
.fuente