[mysql] Node.js가있는 MySQL

방금 Node.js를 시작했습니다. 나는 PHP 배경에서 왔으므로 모든 데이터베이스 요구에 MySQL을 사용하는 데 상당히 익숙합니다.

Node.js에서 MySQL을 어떻게 사용합니까?



답변

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'


답변

node-mysql 은 아마도 MySQL 데이터베이스 작업에 사용되는 최고의 모듈 중 하나 일 것입니다.


답변

이것은 업데이트를 추가하는 오래된 스레드이므로 다음과 같습니다.

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/ 로 이동하여 설치해야합니다.


답변

다음은 도움이 될 수있는 생산 코드입니다.

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/


답변

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


답변

이모, MySQL의 공식 Node.js 드라이버 인 MySQL Connector / Node.js를 사용해보십시오. 자세한 설명 은 ref-1ref-2 를 참조하십시오. here 에서 사용할 수있는 mysqljs / mysql을 시도했지만 이 라이브러리의 클래스, 메소드, 속성에 대한 자세한 문서를 찾지 못했습니다.

따라서 비동기 Promise 기반 클라이언트 라이브러리이고 좋은 문서를 제공 하므로 표준 MySQL Connector/Node.js으로 전환했습니다 . 다음 코드 스 니펫을 살펴보십시오.X DevAPI

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


답변

여러 데이터베이스 엔진에 공통 프레임 워크를 제공하기 위해 Node.js DB 라는 새로운 노력을 시도 할 수도 있습니다 . C ++로 빌드되므로 성능이 보장됩니다.

특히 Node.js MySQL 지원을 위해 db-mysql 드라이버를 사용할 수 있습니다 .