MySQL com o Node.js




(6)

Eu comecei a entrar no Node.js. Eu venho de um background em PHP, então estou bastante acostumado a usar o MySQL para todas as minhas necessidades de banco de dados.

Como posso usar o MySQL com o Node.js?


Aqui está o código de produção que pode ajudá-lo.

Package.json

{
  "name": "node-mysql",
  "version": "0.0.1",
  "dependencies": {
    "express": "^4.10.6",
    "mysql": "^2.5.4"
  }
}

Aqui está o arquivo do 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);

Referência: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/


Como esse é um segmento antigo, basta adicionar uma atualização:

Para instalar o driver node.js do MySQL:

Se você executar apenas o npm install mysql , você precisa estar no mesmo diretório que o seu servidor. Eu aconselharia fazê-lo como em um dos exemplos a seguir:

Para instalação global:

npm install -g mysql

Para instalação local:

1- Adicione ao seu package.json nas dependências:

"dependencies": {
    "mysql": "~2.3.2",
     ...

2- execute a npm install

Note que para conexões acontecer você também precisará rodar o servidor mysql (que é independente de nós)

Para instalar o servidor MySQL:

Há um monte de tutoriais por aí que explicam isso, e é um pouco dependente do sistema operacional. Basta ir ao google e procurar how to install mysql server [Ubuntu|MacOSX|Windows] . Mas em uma frase: você tem que ir para http://www.mysql.com/downloads/ e instalá-lo.


Imo, você deve tentar o MySQL Connector / Node.js, que é o driver oficial do Node.js para o MySQL. Veja ref-1 e ref-2 para uma explicação detalhada. Eu tentei mysqljs / mysql que está disponível here , mas eu não encontro documentação detalhada sobre classes, métodos, propriedades desta biblioteca.

Então eu mudei para o MySQL Connector/Node.js padrão MySQL Connector/Node.js com X DevAPI , uma vez que é uma biblioteca cliente baseada em Promise assíncrona e fornece boa documentação. Dê uma olhada no seguinte trecho 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);
});

O KnexJs pode ser usado como um construtor de consulta SQL no Node.JS e no navegador. Eu acho fácil de usar. Vamos tentar - 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'
  }
});

Você pode usá-lo assim

knex.select('*').from('users')

ou

knex('users').where({
  first_name: 'Test',
  last_name:  'User'
}).select('id')

conecte o banco de dados mysql instalando uma biblioteca. aqui, escolheu o módulo node-mysql estável e fácil de usar.

npm install [email protected].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();

Para NodeJS mysql conectando e consultando exemplo


node-mysql é provavelmente um dos melhores módulos usados ​​para trabalhar com o banco de dados MySQL, que é mantido ativamente e bem documentado.





node.js