web-dev-qa-db-ja.com

Node.jsを使ったMySQL

Node.jsに入り始めたばかりです。私はPHP背景から来ているので、データベースのすべてのニーズにMySQLを使用することにかなり慣れています。

MySQLをNode.jsと一緒に使用する方法

369
crawf

node.jsモジュールリストをチェックしてください

  • node-mysql - MySQLプロトコルを実装するnode.jsモジュール
  • node-mysql2 - まだ別の純粋なJS非同期ドライバ。パイプライン化、準備済みステートメント.
  • node-mysql-libmysqlclient - libmysqlclientに基づくMySQL非同期バインディング

node-mysqlは十分にシンプルに見えます。

var mysql      = require('mysql');
var connection = mysql.createConnection({
  Host     : 'example.org',
  user     : 'bob',
  password : 'secret',
});

connection.connect(function(err) {
  // connected! (unless `err` is set)
});

問い合わせ:

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'
423
mak

node-mysql はMySQLデータベースを扱うために使われている最も優れたモジュールの1つであり、積極的に管理され、文書化されています。

28
yojimbo87

これはアップデートを追加するだけの古いスレッドなので。

MySQL node.jsドライバをインストールするには

npm install mysqlだけを実行する場合は、サーバーを実行するディレクトリと同じディレクトリにいる必要があります。次の例のいずれかのようにすることをお勧めします。

グローバルインストールの場合

npm install -g mysql

ローカルインストールの場合

1-依存関係のあなたのpackage.jsonにそれを追加してください:

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

2- npm installを実行


接続を確立するには、mysqlサーバー(ノードに依存しない)も実行している必要があります。

MySQLサーバーをインストールするには:

これを説明するたくさんのチュートリアルがそこにあります、そしてそれは手術システムに少し依存しています。 Googleにアクセスしてhow to install mysql server [Ubuntu|MacOSX|Windows]を検索するだけです。しかし文で:あなたは http://www.mysql.com/downloads/ に行き、それをインストールしなければなりません。

19
fmsf

これはあなたを助けるかもしれないプロダクションコードです。

Package.json

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

これがサーバーファイルです。

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);

参照: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/ /

10
Shaikh Shahid

Node.js DB として知られる新しい試みを試してみることもできます。これは、いくつかのデータベースエンジンに共通のフレームワークを提供することを目的としています。パフォーマンスが保証されているのでC++で構築されています。

具体的には、 Node.js MySQLサポート にdb-mysqlドライバを使用できます。

2

Imo、あなたはMySQL用の公式Node.jsドライバであるMySQL Connector/Node.jsを試してみるべきです。詳細な説明は ref-1 および ref-2 を参照してください。私はmysqljs/mysqlを試してみました。これは here ですが、このライブラリのクラス、メソッド、プロパティに関する詳細なドキュメントはありません。

それで私はMySQL Connector/Node.jsで標準的なX DevAPIに切り替えました、なぜならそれは 非同期のPromiseベースの クライアントライブラリであり、良いドキュメントを提供するからです。次のコードスニペットを見てください。

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);
});
2
Lex Soft

KnexJは、Node.JSとブラウザの両方でSQLクエリビルダーとして使用できます。私はそれが使いやすいと思います。試してみましょう - 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'
  }
});

あなたはこれのようにそれを使うことができます

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

または

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

ライブラリをインストールしてMySQLデータベースに接続します。ここでは、安定して使いやすいnode-mysqlモジュールを選びました。

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();

NodeJS mysqlの接続とクエリの例

0
Prabin Tp