Hướng dẫn node js best mysql module - nút js mô-đun mysql tốt nhất


Node.js có thể được sử dụng trong các ứng dụng cơ sở dữ liệu.

Show

Một trong những cơ sở dữ liệu phổ biến nhất là MySQL.


Cơ sở dữ liệu MySQL

Để có thể thử nghiệm các ví dụ mã, bạn nên cài đặt MySQL trên máy tính của mình.

Bạn có thể tải xuống cơ sở dữ liệu MySQL miễn phí tại https://www.mysql.com/doads/.


Cài đặt trình điều khiển MySQL

Khi bạn đã chạy và chạy trên máy tính của mình, bạn có thể truy cập nó bằng cách sử dụng Node.js.

Để truy cập cơ sở dữ liệu MySQL với Node.js, bạn cần trình điều khiển MySQL. Hướng dẫn này sẽ sử dụng mô -đun "MySQL", được tải xuống từ NPM.

Để tải xuống và cài đặt mô -đun "MySQL", hãy mở thiết bị đầu cuối lệnh và thực hiện các mục sau:

C: \ Users \ Your Name> NPM Cài đặt MySQL

Bây giờ bạn đã tải xuống và cài đặt trình điều khiển cơ sở dữ liệu MySQL.

Node.js có thể sử dụng mô -đun này để thao tác cơ sở dữ liệu MySQL:

var mysql = yêu cầu ('mysql');



Tạo kết nối

Bắt đầu bằng cách tạo kết nối với cơ sở dữ liệu.

Sử dụng tên người dùng và mật khẩu từ cơ sở dữ liệu MySQL của bạn.

demo_db_connection.js

var mysql = yêu cầu ('mysql');

Tạo kết nối
  host: "localhost",
  user: "yourusername",
  password: "yourpassword"
});

Bắt đầu bằng cách tạo kết nối với cơ sở dữ liệu.
  if (err) throw err;
  console.log("Connected!");
});

Sử dụng tên người dùng và mật khẩu từ cơ sở dữ liệu MySQL của bạn.

var con = mysql.createConnection ({& nbsp; host: "localhost", & nbsp; user: "yourusername", & nbsp; mật khẩu: "yourPassword"});

con.connect (function (err) {& nbsp; if (err) ném err; & nbsp; console.log ("kết nối!");});

Chạy ví dụ »

Lưu mã ở trên trong một tệp có tên là "demo_db_connection.js" và chạy tệp:

Chạy "demo_db_connection.js"


C: \ Users \ Your Name> Node demo_db_connection.js

Điều này sẽ cung cấp cho bạn kết quả này:

Bây giờ bạn có thể bắt đầu truy vấn cơ sở dữ liệu bằng các câu lệnh SQL.

Truy vấn một cơ sở dữ liệu
  if (err) throw err;
  console.log("Connected!");
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("Result: " + result);
  });
});

Sử dụng các câu lệnh SQL để đọc từ (hoặc ghi cho) cơ sở dữ liệu MySQL. Điều này cũng được gọi là "Truy vấn" cơ sở dữ liệu.

Đối tượng kết nối được tạo trong ví dụ trên, có một phương thức truy vấn cơ sở dữ liệu:

con.connect (function (err) {& nbsp; if (err) ném err; & nbsp; console.log ("kết nối!"); & nbsp; con.Query (sql, function (err, result) ; if (err) ném err; & nbsp; & nbsp; console.log ("kết quả:" + kết quả); & nbsp;});});



mysql

Hướng dẫn node js best mysql module - nút js mô-đun mysql tốt nhất

Mục lục

  • Cài đặt
  • Giới thiệu
  • Người đóng góp
  • Nhà tài trợ
  • Cộng đồng
  • Thiết lập kết nối
  • Tùy chọn kết nối
    • Tùy chọn SSL
    • Cờ kết nối
  • Chấm dứt kết nối
  • Kết nối gộp
  • Tùy chọn hồ bơi
  • Sự kiện bể bơi
    • có được, thu được
    • sự liên quan
    • enqueue
    • phóng thích
  • Đóng tất cả các kết nối trong một hồ bơi
  • Poolcluster
    • Tùy chọn bao gồm nhóm
  • Chuyển đổi người dùng và thay đổi trạng thái kết nối
  • Máy chủ ngắt kết nối
  • Thực hiện truy vấn
  • Thoát khỏi các giá trị truy vấn
  • Thoát khỏi số nhận dạng truy vấn
    • Chuẩn bị truy vấn
    • Định dạng tùy chỉnh
  • Nhận id của một hàng chèn
  • Nhận số lượng hàng bị ảnh hưởng
  • Nhận số lượng hàng thay đổi
  • Nhận ID kết nối
  • Thực hiện các truy vấn song song
  • Truyền phát các hàng truy vấn
    • Kết quả đường ống với các luồng
  • Nhiều truy vấn câu lệnh
  • Thủ tục lưu trữ
  • Tham gia với tên cột chồng chéo
  • Giao dịch
  • Ping
  • Thời gian chờ
  • Xử lý lỗi
  • An toàn ngoại lệ
  • Loại đúc
    • Con số
    • Ngày
    • Đệm
    • Sợi dây
    • Loại đúc kiểu tùy chỉnh
  • Các vấn đề về gỡ lỗi và báo cáo
  • Vấn đề an ninh
  • Đóng góp
  • Chạy thử nghiệm
    • Chạy bài kiểm tra đơn vị
    • Chạy kiểm tra tích hợp
  • Làm

Cài đặt

Giới thiệu

Người đóng góp

Nhà tài trợ

Cộng đồng

Thiết lập kết nối

$ npm install mysqljs/mysql

Giới thiệu

Người đóng góp

Nhà tài trợ

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

Cộng đồng

  • Thiết lập kết nối
  • Tùy chọn kết nối

Người đóng góp

Nhà tài trợ

Cộng đồng

  • Thiết lập kết nối
  • Tùy chọn kết nối

Nhà tài trợ

Cộng đồng

  • Thiết lập kết nối
  • Tùy chọn kết nối
  • pinkbike.com
  • Tùy chọn SSL
  • Cờ kết nối

Cộng đồng

Thiết lập kết nối

  • Tùy chọn kết nối: https://groups.google.com/forum/#!forum/node-mysql
  • Kênh IRC: #node.js (trên freenode.net, tôi chú ý đến bất kỳ tin nhắn nào bao gồm thuật ngữ

    var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    3)
    : #node.js (on freenode.net, I pay attention to any message including the term

    var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    3)

Thiết lập kết nối

Cách được đề xuất để thiết lập kết nối là:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

Tuy nhiên, một kết nối cũng có thể được thiết lập ngầm bằng cách gọi một truy vấn:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

Tùy thuộc vào cách bạn muốn xử lý các lỗi của mình, một trong hai phương thức có thể phù hợp. Bất kỳ loại lỗi kết nối (bắt tay hoặc mạng) được coi là lỗi nghiêm trọng, xem phần xử lý lỗi để biết thêm thông tin.

Tùy chọn kết nối

Khi thiết lập kết nối, bạn có thể đặt các tùy chọn sau:

  • var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    4: Tên máy chủ của cơ sở dữ liệu bạn đang kết nối. (Mặc định:

    var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    5)
  • var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    6: Số cổng để kết nối với. (Mặc định:

    var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    7)
  • var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    8: Địa chỉ IP nguồn để sử dụng cho kết nối TCP. (Không bắt buộc)
  • var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    9: Đường dẫn đến ổ cắm miền UNIX để kết nối với. Khi được sử dụng

    var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    4 và

    var connection = mysql.createConnection({

      host : 'localhost',

      ssl  : {

        rejectUnauthorized: false

      }

    });

    6 bị bỏ qua.
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    2: Người dùng MySQL xác thực là.
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    3: Mật khẩu của người dùng MySQL đó.
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    4: Tên của cơ sở dữ liệu để sử dụng cho kết nối này (tùy chọn).
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    5: Charset cho kết nối. Điều này được gọi là "đối chiếu" ở cấp SQL của MySQL (như

    var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    6). Nếu một ký tự cấp SQL được chỉ định (như

    var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    7) thì đối chiếu mặc định cho độ chao đó được sử dụng. (Mặc định:

    var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    8)
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    9: Thời gian được cấu hình trên máy chủ MySQL. Điều này được sử dụng để nhập các giá trị ngày/thời gian của máy chủ đúc vào đối tượng JavaScript

    connection.end(function(err) {

    });

    0 và ngược lại. Điều này có thể là

    connection.end(function(err) {

    });

    1,

    connection.end(function(err) {

    });

    2 hoặc bù ở dạng

    connection.end(function(err) {

    });

    3 hoặc

    connection.end(function(err) {

    });

    4. (Mặc định:

    connection.end(function(err) {

    });

    1)
  • connection.end(function(err) {

    });

    6: Millisecond trước khi hết thời gian chờ trong kết nối ban đầu với máy chủ MySQL. (Mặc định:

    connection.end(function(err) {

    });

    7)
  • connection.end(function(err) {

    });

    8: Chuỗi đối tượng thay vì chuyển đổi sang các giá trị. Xem vấn đề #501. (Mặc định:

    connection.end(function(err) {

    });

    9)
  • var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    0: Cho phép kết nối với các trường hợp MySQL yêu cầu phương thức xác thực cũ (không an toàn). (Mặc định:

    connection.end(function(err) {

    });

    9)
  • var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    2: Xác định xem các giá trị cột có nên được chuyển đổi thành các loại JavaScript gốc hay không. (Mặc định:

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3)
  • var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    4: Hàm định dạng truy vấn tùy chỉnh. Xem định dạng tùy chỉnh.
  • var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    5: Khi xử lý các số lớn (cột Bigint và thập phân) trong cơ sở dữ liệu, bạn sẽ kích hoạt tùy chọn này (mặc định:

    connection.end(function(err) {

    });

    9).
  • var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    7: Kích hoạt cả

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    5 và

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    7 buộc các số lớn (cột lớn và thập phân) luôn được trả về dưới dạng các đối tượng chuỗi JavaScript (mặc định:

    connection.end(function(err) {

    });

    9). Kích hoạt

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    5 Nhưng để

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    7 bị vô hiệu hóa sẽ trả về các số lớn dưới dạng các đối tượng chuỗi khi chúng không thể được biểu diễn chính xác với các đối tượng số JavaScript (xảy ra khi chúng vượt quá phạm vi [-2^53, +2^53], nếu không chúng sẽ được trả về dưới dạng số đối tượng. Tùy chọn này bị bỏ qua nếu

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    5 bị vô hiệu hóa.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    04: Các loại ngày lực (Dấu thời gian, DateTime, ngày) được trả về dưới dạng chuỗi thay vì thổi vào các đối tượng ngày JavaScript. Có thể là ________ 93/________ 89 hoặc một mảng tên loại để giữ như chuỗi. (Mặc định:

    connection.end(function(err) {

    });

    9)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    08: In chi tiết giao thức cho stdout. Có thể là ________ 93/________ 89 hoặc một mảng tên loại gói nên được in. (Mặc định:

    connection.end(function(err) {

    });

    9)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    12: Tạo dấu vết ngăn xếp trên

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    13 để bao gồm trang web cuộc gọi của lối vào thư viện ("Dấu vết ngăn xếp dài"). Hình phạt hiệu suất nhẹ cho hầu hết các cuộc gọi. (Mặc định:

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    15: Cho phép

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    16 sử dụng công cụ sửa đổi

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    17. (Mặc định:

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    19: Cho phép nhiều câu lệnh MySQL cho mỗi truy vấn. Hãy cẩn thận với điều này, nó có thể làm tăng phạm vi của các cuộc tấn công tiêm SQL. (Mặc định:

    connection.end(function(err) {

    });

    9)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    21: Danh sách các cờ kết nối để sử dụng ngoài các cờ mặc định. Cũng có thể để danh sách đen mặc định. Để biết thêm thông tin, hãy kiểm tra cờ kết nối.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    22: Đối tượng có tham số SSL hoặc chuỗi chứa tên của cấu hình SSL. Xem các tùy chọn SSL.

Ngoài việc chuyển các tùy chọn này dưới dạng đối tượng, bạn cũng có thể sử dụng chuỗi URL. Ví dụ:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

Lưu ý: Các giá trị truy vấn trước tiên được cố gắng được phân tích cú pháp là JSON và nếu điều đó thất bại là chuỗi rõ ràng.

Tùy chọn SSL

Tùy chọn

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

22 trong các tùy chọn kết nối có một chuỗi hoặc một đối tượng. Khi được cung cấp một chuỗi, nó sử dụng một trong các cấu hình SSL được xác định trước. Các hồ sơ sau được bao gồm:

  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    24: Hồ sơ này là để kết nối với máy chủ Amazon RDS và chứa các chứng chỉ từ https://rds.amazonaws.com/doc/rds-ssl-ca-cert.pem và https://s3.amazonaws.com/rds -DOWNOALSS/RDS-COMBORD-CA-BUNDLE.PEM

Khi kết nối với các máy chủ khác, bạn sẽ cần cung cấp một đối tượng của các tùy chọn, theo định dạng tương tự như TLS.CreateSecureContext. Xin lưu ý các đối số mong đợi một chuỗi của chứng chỉ, không phải tên tệp cho chứng chỉ. Đây là một ví dụ đơn giản:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

Bạn cũng có thể kết nối với máy chủ MySQL mà không cần CA thích hợp để tin tưởng. Bạn không nên làm điều này.

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    rejectUnauthorized: false

  }

});

Cờ kết nối

Nếu, vì bất kỳ lý do gì, bạn muốn thay đổi các cờ kết nối mặc định, bạn có thể sử dụng tùy chọn kết nối

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

21. Vượt qua một chuỗi với một danh sách các mục được phân tách bằng dấu phẩy để thêm vào các cờ mặc định. Nếu bạn không muốn một lá cờ mặc định được sử dụng, hãy chuẩn bị cờ với dấu trừ. Để thêm một lá cờ không có trong danh sách mặc định, chỉ cần viết tên cờ hoặc tiền tố nó bằng một điểm cộng (trường hợp không nhạy cảm).

var connection = mysql.createConnection({

  flags: '-FOUND_ROWS,IGNORE_SPACE'

});

Các cờ sau đây có sẵn:

  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    26 - Kích hoạt nén giao thức. Tính năng này hiện không được hỗ trợ bởi triển khai Node.js nên không thể bật. (Tắt mặc định)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    27 - Khả năng chỉ định cơ sở dữ liệu về kết nối. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    28 - Gửi các hàng tìm thấy thay vì các hàng bị ảnh hưởng là

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    29. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    30 - Đừng phát hành SigPipe nếu mạng bị lỗi. Cờ này không có tác dụng đối với việc triển khai Node.js này. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    31 - Hãy để trình phân tích cú pháp bỏ qua không gian trước

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    32 trong các truy vấn. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    33 - Cho biết máy chủ MySQL Đây là máy khách "tương tác". Điều này sẽ sử dụng thời gian chờ tương tác trên máy chủ MySQL và báo cáo dưới dạng tương tác trong danh sách quy trình. (Tắt mặc định)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    34 - có thể sử dụng

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    35. Cờ này được điều khiển bởi tùy chọn kết nối

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    15. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    37 - Cờ dài hơn trong giao thức :: CộtDefDef320. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    38 - Sử dụng phiên bản xác thực mật khẩu cũ được cải tiến. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    39 - có thể xử lý nhiều kết quả cho các truy vấn. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    40 - Khách hàng có thể gửi nhiều câu lệnh cho mỗi truy vấn hoặc chuẩn bị câu lệnh (cách nhau bằng

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    41). Cờ này được điều khiển bởi tùy chọn kết nối

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    19. (Tắt mặc định)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    43
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    44 Xử lý đặc biệt hành vi ODBC. Cờ này không có tác dụng đối với việc triển khai Node.js này. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    45 - Sử dụng cơ chế xác thực plugin khi kết nối với máy chủ MySQL. Tính năng này hiện không được hỗ trợ bởi triển khai Node.js nên không thể bật. (Tắt mặc định)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    46 - Sử dụng giao thức 4.1. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    47 - có thể xử lý nhiều kết quả để thực thi. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    48 - Điều này là cụ thể cho máy khách C và không có tác dụng đối với việc triển khai Node.js này. (Tắt mặc định)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    49 - Cờ cũ cho giao thức 4.1. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    50 - Hỗ trợ xác thực 4.1 bản địa. (Mặc định BẬT)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    51 - Sử dụng SSL sau khi bắt tay để mã hóa dữ liệu trong vận chuyển. Tính năng này được kiểm soát mặc dù tùy chọn kết nối

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    22, vì vậy cờ không có hiệu lực. (Tắt mặc định)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    53 - Xác minh chứng chỉ máy chủ trong quá trình thiết lập SSL. Tính năng này được kiểm soát mặc dù tùy chọn kết nối

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    54, vì vậy cờ không có hiệu lực. (Tắt mặc định)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    55 - Yêu cầu cờ trạng thái giao dịch. (Mặc định BẬT)

Chấm dứt kết nối

Có hai cách để kết thúc một kết nối. Kết thúc một kết nối một cách duyên dáng được thực hiện bằng cách gọi phương thức

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    rejectUnauthorized: false

  }

});

2:

connection.end(function(err) {

});

Điều này sẽ đảm bảo tất cả các truy vấn trước đó vẫn còn trước khi gửi gói

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

57 đến máy chủ MySQL. Nếu một lỗi gây tử vong xảy ra trước gói

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

57 có thể được gửi, một đối số

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

59 sẽ được cung cấp cho cuộc gọi lại, nhưng kết nối sẽ bị chấm dứt bất kể điều đó.

Một cách khác để kết thúc kết nối là gọi phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

60. Điều này sẽ gây ra sự chấm dứt ngay lập tức của ổ cắm cơ bản. Ngoài ra,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

60 đảm bảo rằng sẽ không có thêm sự kiện hoặc cuộc gọi lại sẽ được kích hoạt cho kết nối.

Không giống như

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    rejectUnauthorized: false

  }

});

2 Phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

60 không có đối số gọi lại.

Kết nối gộp

Thay vì tạo và quản lý kết nối từng người một, mô-đun này cũng cung cấp kết nối tích hợp kết nối bằng cách sử dụng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

64. Đọc thêm về kết nối gộp.

Tạo một nhóm và sử dụng trực tiếp:

var mysql = require('mysql');

var pool  = mysql.createPool({

  connectionLimit : 10,

  host            : 'example.org',

  user            : 'bob',

  password        : 'secret',

  database        : 'my_db'

});

pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

Đây là một lối tắt cho

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

65 ->

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

66 ->

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

67. Sử dụng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

65 rất hữu ích để chia sẻ trạng thái kết nối cho các truy vấn tiếp theo. Điều này là do hai cuộc gọi đến

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

69 có thể sử dụng hai kết nối khác nhau và chạy song song. Đây là cấu trúc cơ bản:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

0

Nếu bạn muốn đóng kết nối và xóa nó khỏi nhóm, hãy sử dụng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

70 thay thế. Nhóm sẽ tạo ra một kết nối mới vào lần tới khi cần thiết.

Các kết nối được tạo ra một cách lười biếng bởi nhóm. Nếu bạn định cấu hình nhóm để cho phép tối đa 100 kết nối, nhưng chỉ sử dụng 5 lần đồng thời, chỉ có 5 kết nối được thực hiện. Các kết nối cũng được đạp xe theo kiểu vòng tròn, với các kết nối được lấy từ đỉnh hồ bơi và trở về phía dưới.

Khi kết nối trước được lấy từ nhóm, một gói ping được gửi đến máy chủ để kiểm tra xem kết nối có tốt không.

Tùy chọn hồ bơi

Các nhóm chấp nhận tất cả các tùy chọn giống như một kết nối. Khi tạo một kết nối mới, các tùy chọn chỉ được chuyển cho hàm tạo kết nối. Ngoài các nhóm tùy chọn đó chấp nhận một vài tính năng bổ sung:

  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    71: mili giây trước khi hết thời gian chờ trong quá trình thu thập kết nối. Điều này hơi khác với

    connection.end(function(err) {

    });

    6, bởi vì việc có được kết nối nhóm không phải lúc nào cũng liên quan đến việc tạo kết nối. Nếu một yêu cầu kết nối được xếp hàng, thời gian yêu cầu dành cho hàng đợi không được tính vào thời gian chờ này. (Mặc định:

    connection.end(function(err) {

    });

    7)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    74: Xác định hành động của nhóm khi không có kết nối và đã đạt được giới hạn. Nếu

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3, nhóm sẽ xếp hàng yêu cầu kết nối và gọi nó khi có sẵn. Nếu

    connection.end(function(err) {

    });

    9, nhóm sẽ ngay lập tức gọi lại với lỗi. (Mặc định:

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    78: Số lượng kết nối tối đa để tạo cùng một lúc. (Mặc định:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    79)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    80: Số lượng yêu cầu kết nối tối đa mà nhóm sẽ xếp hàng trước khi trả lại lỗi từ

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    81. Nếu được đặt thành

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    82, không có giới hạn về số lượng yêu cầu kết nối xếp hàng. (Mặc định:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    82)

Sự kiện bể bơi

có được, thu được

Bể bơi sẽ phát ra một sự kiện

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

84 khi kết nối được mua từ nhóm. Điều này được gọi sau khi tất cả các hoạt động có được đã được thực hiện trên kết nối, ngay trước khi kết nối được trao cho cuộc gọi lại của mã thu được.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

1

sự liên quan

Bể bơi sẽ phát ra một sự kiện

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

85 khi kết nối mới được thực hiện trong nhóm. Nếu bạn cần đặt các biến phiên trên kết nối trước khi được sử dụng, bạn có thể nghe sự kiện

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

85.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

2

enqueue

Bể bơi sẽ phát ra một sự kiện

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

87 khi một cuộc gọi lại đã được xếp hàng để chờ đợi một kết nối có sẵn.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

3

phóng thích

Bể bơi sẽ phát ra một sự kiện

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

88 khi kết nối được phát hành trở lại hồ bơi. Điều này được gọi sau khi tất cả các hoạt động phát hành đã được thực hiện trên kết nối, vì vậy kết nối sẽ được liệt kê là miễn phí tại thời điểm của sự kiện.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

4

Đóng tất cả các kết nối trong một hồ bơi

Khi bạn hoàn thành bằng cách sử dụng nhóm, bạn phải kết thúc tất cả các kết nối hoặc vòng lặp sự kiện Node.js sẽ duy trì hoạt động cho đến khi các kết nối được đóng bởi máy chủ MySQL. Điều này thường được thực hiện nếu nhóm được sử dụng trong tập lệnh hoặc khi cố gắng tắt máy chủ một cách duyên dáng. Để kết thúc tất cả các kết nối trong nhóm, hãy sử dụng phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

89 trên nhóm:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

5

Phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

89 có một cuộc gọi lại tùy chọn mà bạn có thể sử dụng để biết khi nào tất cả các kết nối được kết thúc.

Khi

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

91 được gọi,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

92 và các hoạt động khác không còn có thể được thực hiện. Đợi cho đến khi tất cả các kết nối trong nhóm được phát hành trước khi gọi

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

91. Nếu bạn sử dụng phương pháp phím tắt

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

94, thay cho

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

92 →

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

96 →

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

97, hãy đợi cho đến khi hoàn thành.
Wait until all connections in the pool are released before calling

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

91. If you use the shortcut method

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

94, in place of

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

92 →

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

96 →

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

97, wait until it completes.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

91 gọi

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

99 trên mọi kết nối đang hoạt động trong nhóm. Điều này xếp hàng gói

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

00 trên kết nối và đặt cờ để ngăn chặn

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

92 tạo các kết nối mới. Tất cả các lệnh / truy vấn đã được tiến hành sẽ hoàn thành, nhưng các lệnh mới sẽ không được thực thi.

Poolcluster

PoolCluster cung cấp nhiều kết nối máy chủ. (Nhóm & Thử lại & Bộ chọn)

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

6

Tùy chọn bao gồm nhóm

  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    02: Nếu

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3,

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    04 sẽ cố gắng kết nối lại khi kết nối không thành công. (Mặc định:

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    06: Nếu kết nối không thành công,

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    07 của Node sẽ tăng. Khi

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    07 lớn hơn

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    06, hãy xóa một nút trong

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    04. (Mặc định:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    11)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    12: Nếu kết nối không thành công, chỉ định số mili giây trước khi thực hiện một lần thử kết nối khác. Nếu được đặt thành

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    82, thì nút sẽ bị xóa và không bao giờ sử dụng lại. (Mặc định:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'localhost',

      user     : 'me',

      password : 'secret',

      database : 'my_db'

    });

    connection.connect();

    connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    connection.end();

    82)
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    15: Bộ chọn mặc định. (Mặc định:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    16)
    • var mysql      = require('mysql');

      var connection = mysql.createConnection({

        host     : 'example.org',

        user     : 'bob',

        password : 'secret'

      });

      connection.connect(function(err) {

        if (err) {

          console.error('error connecting: ' + err.stack);

          return;

        }

        console.log('connected as id ' + connection.threadId);

      });

      16: Chọn một thay thế. (Vòng tròn)
    • var mysql      = require('mysql');

      var connection = mysql.createConnection({

        host     : 'example.org',

        user     : 'bob',

        password : 'secret'

      });

      connection.connect(function(err) {

        if (err) {

          console.error('error connecting: ' + err.stack);

          return;

        }

        console.log('connected as id ' + connection.threadId);

      });

      18: Chọn nút theo hàm ngẫu nhiên.
    • var mysql      = require('mysql');

      var connection = mysql.createConnection({

        host     : 'example.org',

        user     : 'bob',

        password : 'secret'

      });

      connection.connect(function(err) {

        if (err) {

          console.error('error connecting: ' + err.stack);

          return;

        }

        console.log('connected as id ' + connection.threadId);

      });

      19: Chọn nút đầu tiên có sẵn vô điều kiện.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

7

Chuyển đổi người dùng và thay đổi trạng thái kết nối

MySQL cung cấp lệnh thay đổi cho phép bạn thay đổi người dùng hiện tại và các khía cạnh khác của kết nối mà không tắt ổ cắm cơ bản:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

8

Các tùy chọn có sẵn cho tính năng này là:

  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    2: Tên của người dùng mới (mặc định là cái trước).
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    3: Mật khẩu của người dùng mới (mặc định là cái trước).
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    5: Charset mới (mặc định là cái trước).
  • var connection = mysql.createConnection({

      flags: '-FOUND_ROWS,IGNORE_SPACE'

    });

    4: Cơ sở dữ liệu mới (mặc định là cái trước).

Một tác dụng phụ đôi khi hữu ích của chức năng này là chức năng này cũng đặt lại bất kỳ trạng thái kết nối nào (biến, giao dịch, v.v.).

Lỗi gặp phải trong hoạt động này được coi là lỗi kết nối gây tử vong bằng mô -đun này.

Máy chủ ngắt kết nối

Bạn có thể mất kết nối với máy chủ MySQL do sự cố mạng, máy chủ thời gian bạn ra ngoài, máy chủ được khởi động lại hoặc gặp sự cố. Tất cả các sự kiện này được coi là lỗi gây tử vong và sẽ có

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

24. Xem phần Xử lý lỗi để biết thêm thông tin.

Kết nối lại một kết nối được thực hiện bằng cách thiết lập một kết nối mới. Sau khi bị chấm dứt, một đối tượng kết nối hiện có không thể được kết nối lại bằng thiết kế.

Với nhóm, các kết nối bị ngắt kết nối sẽ bị xóa khỏi nhóm giải phóng không gian để kết nối mới được tạo trong cuộc gọi GetConnection tiếp theo.

Với PoolCluster, các kết nối bị ngắt kết nối sẽ được tính là lỗi đối với nút liên quan, tăng mã lỗi cho nút đó. Khi có nhiều lỗi

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

06 trên một nút nhất định, nó sẽ bị xóa khỏi cụm. Khi điều này xảy ra, PoolCluster có thể phát ra lỗi

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

26 nếu không còn bất kỳ nút phù hợp nào cho mẫu. Cấu hình

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

12 có thể được đặt để khôi phục các nút ngoại tuyến sau một thời gian chờ nhất định.

Thực hiện truy vấn

Cách cơ bản nhất để thực hiện truy vấn là gọi phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

28 trên một đối tượng (như phiên bản

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

29,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

30 hoặc

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

31).

Hình thức đơn giản nhất của .________ 232 là

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

33, trong đó chuỗi SQL là đối số đầu tiên và thứ hai là một cuộc gọi lại:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

9

Mẫu thứ hai

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

34 xuất hiện khi sử dụng các giá trị giữ chỗ (xem các giá trị truy vấn thoát ra):

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

0

Mẫu thứ ba

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

35 xuất hiện khi sử dụng các tùy chọn nâng cao khác nhau trên truy vấn, như thoát khỏi các giá trị truy vấn, tham gia với tên cột chồng chéo, thời gian chờ và loại đúc.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

1

Lưu ý rằng sự kết hợp của các biểu mẫu thứ hai và thứ ba có thể được sử dụng trong đó các giá trị giữ chỗ được truyền như một đối số và không phải trong đối tượng tùy chọn. Đối số

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

36 sẽ ghi đè

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

36 trong đối tượng tùy chọn.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

2

Nếu truy vấn chỉ có một ký tự thay thế duy nhất (

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

38) và giá trị không phải là

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

39,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

40 hoặc một mảng, nó có thể được chuyển trực tiếp dưới dạng đối số thứ hai cho

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

41:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

3

Thoát khỏi các giá trị truy vấn

THẬN TRỌNG Các phương thức thoát ra các giá trị chỉ hoạt động khi chế độ SQL NO_Backslash_escapes bị vô hiệu hóa (đây là trạng thái mặc định cho các máy chủ MySQL). These methods of escaping values only works when the NO_BACKSLASH_ESCAPES SQL mode is disabled (which is the default state for MySQL servers).

Để tránh các cuộc tấn công tiêm SQL, bạn phải luôn thoát khỏi bất kỳ dữ liệu nào được cung cấp của người dùng trước khi sử dụng dữ liệu bên trong truy vấn SQL. Bạn có thể làm như vậy bằng cách sử dụng các phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

42,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

43 hoặc

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

44:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

4

Ngoài ra, bạn có thể sử dụng các ký tự

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

38 làm người giữ chỗ cho các giá trị bạn muốn thoát như thế này:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

5

Nhiều người giữ chỗ được ánh xạ tới các giá trị theo cùng thứ tự như được thông qua. Ví dụ: trong truy vấn sau

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

46 bằng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

47,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

48 bằng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

49,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

50 bằng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

51 và

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

52 sẽ là

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

53:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

6

Điều này trông tương tự như các câu lệnh được chuẩn bị trong MySQL, tuy nhiên nó thực sự chỉ sử dụng cùng một phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

43 bên trong.

THẬN TRỌNG Điều này cũng khác với các tuyên bố đã chuẩn bị ở chỗ tất cả

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

38 được thay thế, ngay cả những câu có trong các bình luận và chuỗi. This also differs from prepared statements in that all

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

38 are replaced, even those contained in comments and strings.

Các loại giá trị khác nhau được thoát khác nhau, đây là cách:

  • Số không bị ảnh hưởng
  • Booleans được chuyển đổi thành

    var mysql = require('mysql');

    var pool  = mysql.createPool({

      connectionLimit : 10,

      host            : 'example.org',

      user            : 'bob',

      password        : 'secret',

      database        : 'my_db'

    });

    pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

      if (error) throw error;

      console.log('The solution is: ', results[0].solution);

    });

    3 /

    connection.end(function(err) {

    });

    9
  • Đối tượng ngày được chuyển đổi thành chuỗi

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    58
  • Bộ đệm được chuyển đổi thành chuỗi hex, ví dụ:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    59
  • Chuỗi được thoát ra một cách an toàn
  • Mảng được biến thành danh sách, ví dụ:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    60 biến thành

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    61
  • Mảng lồng được chuyển thành danh sách nhóm (để chèn số lượng lớn), ví dụ:

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    62 biến thành

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    63
  • Các đối tượng có phương thức

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    64 sẽ có

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    65 được gọi và giá trị trả về được sử dụng làm SQL thô.
  • Các đối tượng được biến thành các cặp

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    66 cho mỗi thuộc tính có thể kích hoạt trên đối tượng. Nếu giá trị của tài sản là một hàm, nó sẽ bị bỏ qua; Nếu giá trị của thuộc tính là một đối tượng, toString () được gọi trên nó và giá trị trả về được sử dụng.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    40 /

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    39 được chuyển đổi thành

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    69
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    70 /

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    71 bị bỏ lại. MySQL không hỗ trợ những điều này và cố gắng chèn chúng vì các giá trị sẽ kích hoạt lỗi MySQL cho đến khi chúng thực hiện hỗ trợ.

Việc trốn thoát này cho phép bạn làm những việc gọn gàng như thế này:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

7

Và phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

64 cho phép bạn hình thành các truy vấn phức tạp với các chức năng:

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

8

Để tạo các đối tượng bằng phương pháp

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

64, phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

74 có thể được sử dụng. Điều này tạo ra một đối tượng sẽ không bị hỏng khi sử dụng trong trình giữ chỗ

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

38, hữu ích cho việc sử dụng các hàm làm giá trị động:

THẬN TRỌNG Chuỗi được cung cấp cho

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

74 sẽ bỏ qua tất cả các chức năng thoát ra khi được sử dụng, vì vậy hãy cẩn thận khi chuyển trong đầu vào không được đánh giá cao. The string provided to

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

74 will skip all escaping functions when used, so be careful when passing in unvalidated input.

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

9

Nếu bạn cảm thấy cần phải thoát khỏi các truy vấn một mình, bạn cũng có thể sử dụng chức năng thoát trực tiếp:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

0

Thoát khỏi số nhận dạng truy vấn

Nếu bạn không thể tin tưởng một định danh SQL (cơ sở dữ liệu / bảng / cột / cột) vì nó được cung cấp bởi người dùng, bạn nên thoát nó bằng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

77,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

78 hoặc

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

79 như thế này:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

1

Nó cũng hỗ trợ thêm định danh đủ điều kiện. Nó sẽ thoát khỏi cả hai phần.

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

2

Nếu bạn không muốn coi

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

80 là định danh đủ điều kiện, bạn có thể đặt đối số thứ hai thành

var mysql = require('mysql');

var pool  = mysql.createPool({

  connectionLimit : 10,

  host            : 'example.org',

  user            : 'bob',

  password        : 'secret',

  database        : 'my_db'

});

pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

3 để giữ chuỗi làm định danh theo nghĩa đen:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

3

Ngoài ra, bạn có thể sử dụng các ký tự

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

82 làm người giữ chỗ cho các định danh mà bạn muốn thoát như thế này:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

4

Xin lưu ý rằng chuỗi ký tự cuối cùng này là thử nghiệm và cú pháp có thể thay đổi

Khi bạn chuyển một đối tượng đến

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

83 hoặc

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

28,

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

85 được sử dụng để tránh tiêm SQL trong các phím đối tượng.

Chuẩn bị truy vấn

Bạn có thể sử dụng mysql.format để chuẩn bị một truy vấn với nhiều điểm chèn, sử dụng việc thoát thích hợp cho ID và giá trị. Một ví dụ đơn giản về điều này sau:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

5

Theo sau đó, sau đó bạn có một truy vấn hợp lệ, thoát ra mà sau đó bạn có thể gửi đến cơ sở dữ liệu một cách an toàn. Điều này rất hữu ích nếu bạn đang tìm cách chuẩn bị truy vấn trước khi thực sự gửi nó đến cơ sở dữ liệu. Vì mysql.format được tiếp xúc với sqlString.format, bạn cũng có tùy chọn (nhưng không bắt buộc) để truyền trong StringifyObject và múi giờ, cho phép bạn cung cấp một phương tiện tùy chỉnh để biến các đối tượng thành chuỗi, cũng như một loại thời gian cụ thể/thời gian-đặc trưng cho vị trí/thời gian- ngày nhận thức.

Định dạng tùy chỉnh

Nếu bạn thích có một loại định dạng thoát truy vấn khác, có tùy chọn cấu hình kết nối bạn có thể sử dụng để xác định hàm định dạng tùy chỉnh. Bạn có thể truy cập đối tượng kết nối nếu bạn muốn sử dụng

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

83 hoặc bất kỳ chức năng kết nối nào khác.

Đây là một ví dụ về cách thực hiện định dạng khác:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

6

Nhận id của một hàng chèn

Nếu bạn đang chèn một hàng vào một bảng có khóa chính tăng tự động, bạn có thể truy xuất ID chèn như thế này:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

7

Khi xử lý các số lớn (trên giới hạn chính xác số JavaScript), bạn nên xem xét kích hoạt tùy chọn

var mysql = require('mysql');

var pool  = mysql.createPool({

  connectionLimit : 10,

  host            : 'example.org',

  user            : 'bob',

  password        : 'secret',

  database        : 'my_db'

});

pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

5 để có thể đọc ID chèn dưới dạng chuỗi, nếu không nó sẽ gây ra lỗi.

Tùy chọn này cũng được yêu cầu khi tìm nạp các số lớn từ cơ sở dữ liệu, nếu không bạn sẽ nhận được các giá trị được làm tròn đến hàng trăm hoặc hàng ngàn do giới hạn chính xác.

Nhận số lượng hàng bị ảnh hưởng

Bạn có thể nhận được số lượng hàng bị ảnh hưởng từ một câu lệnh chèn, cập nhật hoặc xóa.

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

8

Nhận số lượng hàng thay đổi

Bạn có thể nhận được số lượng hàng thay đổi từ một câu lệnh cập nhật.

"Thay đổi" khác với "bị ảnh hưởng" ở chỗ nó không tính các hàng được cập nhật mà giá trị không thay đổi.

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

9

Nhận ID kết nối

Bạn có thể nhận ID kết nối MySQL ("ID luồng") của một kết nối đã cho bằng thuộc tính

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

88.

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

0

Thực hiện các truy vấn song song

Giao thức MySQL là tuần tự, điều này có nghĩa là bạn cần nhiều kết nối để thực hiện các truy vấn song song. Bạn có thể sử dụng một nhóm để quản lý các kết nối, một cách tiếp cận đơn giản là tạo một kết nối cho mỗi yêu cầu HTTP đến.

Truyền phát các hàng truy vấn

Đôi khi bạn có thể muốn chọn một lượng lớn hàng và xử lý từng hàng khi chúng được nhận. Điều này có thể được thực hiện như thế này:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

1

Xin lưu ý một vài điều về ví dụ trên:

  • Thông thường, bạn sẽ muốn nhận được một lượng hàng nhất định trước khi bắt đầu điều tiết kết nối bằng

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    89. Con số này sẽ phụ thuộc vào số lượng và kích thước của các hàng của bạn.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    89 /

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    91 hoạt động trên ổ cắm và trình phân tích cú pháp bên dưới. Bạn được đảm bảo rằng không còn các sự kiện

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    92 sẽ bắn sau khi gọi

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    89.
  • Bạn không được cung cấp một cuộc gọi lại cho phương thức

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    32 khi phát trực tuyến hàng.
  • Sự kiện

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    92 sẽ bắn cho cả hai hàng cũng như các gói OK xác nhận sự thành công của truy vấn chèn/cập nhật.
  • Điều rất quan trọng là không để kết quả bị tạm dừng quá lâu hoặc bạn có thể gặp phải

    var mysql      = require('mysql');

    var connection = mysql.createConnection({

      host     : 'example.org',

      user     : 'bob',

      password : 'secret'

    });

    connection.connect(function(err) {

      if (err) {

        console.error('error connecting: ' + err.stack);

        return;

      }

      console.log('connected as id ' + connection.threadId);

    });

    96 Giới hạn thời gian cho điều này được xác định bởi cài đặt Net_Write_Timeout trên máy chủ MySQL của bạn.

Ngoài ra, bạn có thể quan tâm để biết rằng hiện tại không thể truyền phát các cột hàng riêng lẻ, chúng sẽ luôn được đệm hoàn toàn. Nếu bạn có một trường hợp sử dụng tốt để phát trực tuyến các lĩnh vực lớn đến và từ MySQL, tôi rất muốn có được suy nghĩ và đóng góp của bạn về điều này.

Kết quả đường ống với các luồng

Đối tượng truy vấn cung cấp một phương thức tiện lợi

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

97 kết thúc các sự kiện truy vấn thành một đối tượng luồng có thể đọc được. Luồng này có thể dễ dàng được đường ống xuống và cung cấp tạm dừng/sơ yếu lý lịch tự động, dựa trên tắc nghẽn xuôi dòng và

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

98 tùy chọn. Tham số

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',

  user     : 'bob',

  password : 'secret'

});

connection.connect(function(err) {

  if (err) {

    console.error('error connecting: ' + err.stack);

    return;

  }

  console.log('connected as id ' + connection.threadId);

});

99 của luồng được đặt thành

var mysql = require('mysql');

var pool  = mysql.createPool({

  connectionLimit : 10,

  host            : 'example.org',

  user            : 'bob',

  password        : 'secret',

  database        : 'my_db'

});

pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

3 và không thể thay đổi (nếu bạn cần một luồng byte, bạn sẽ cần sử dụng luồng biến đổi, như ObjStream chẳng hạn).

Ví dụ: truy vấn đường ống dẫn đến một luồng khác (với bộ đệm tối đa là 5 đối tượng) chỉ đơn giản là:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

2

Nhiều truy vấn câu lệnh

Hỗ trợ cho nhiều tuyên bố bị vô hiệu hóa vì lý do bảo mật (nó cho phép các cuộc tấn công tiêm SQL nếu các giá trị không được thoát đúng). Để sử dụng tính năng này, bạn phải bật nó cho kết nối của mình:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

3

Sau khi được bật, bạn có thể thực thi nhiều truy vấn câu lệnh như bất kỳ truy vấn nào khác:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

4

Ngoài ra, bạn cũng có thể truyền phát kết quả của nhiều truy vấn câu lệnh:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

5

Nếu một trong các câu lệnh trong truy vấn của bạn gây ra lỗi, đối tượng lỗi kết quả chứa thuộc tính

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

01 cho bạn biết câu lệnh nào gây ra nó. MySQL cũng sẽ ngừng thực hiện bất kỳ câu lệnh còn lại khi xảy ra lỗi.

Xin lưu ý rằng giao diện để truyền phát nhiều truy vấn câu lệnh là thử nghiệm và tôi mong muốn phản hồi về nó.

Thủ tục lưu trữ

Bạn có thể gọi các quy trình được lưu trữ từ các truy vấn của bạn như với bất kỳ trình điều khiển MySQL nào khác. Nếu quy trình được lưu trữ tạo ra một số bộ kết quả, chúng sẽ tiếp xúc với bạn giống như kết quả cho nhiều truy vấn câu lệnh.

Tham gia với tên cột chồng chéo

Khi thực hiện tham gia, bạn có khả năng nhận được các bộ kết quả với tên cột chồng chéo.

Theo mặc định, Node-MysQL sẽ ghi đè tên cột va chạm theo thứ tự các cột được nhận từ MySQL, khiến một số giá trị nhận được không khả dụng.

Tuy nhiên, bạn cũng có thể chỉ định rằng bạn muốn các cột của mình được lồng bên dưới tên bảng như thế này:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

6

Hoặc sử dụng một dải phân cách chuỗi để kết quả của bạn được hợp nhất.

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

7

Giao dịch

Hỗ trợ giao dịch đơn giản có sẵn ở cấp độ kết nối:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

8

Xin lưu ý rằng BEGINTransaction (), cam kết () và rollback () chỉ đơn giản là các hàm thuận tiện thực hiện các lệnh bắt đầu, cam kết và rollback tương ứng. Điều quan trọng là phải hiểu rằng nhiều lệnh trong mysql có thể gây ra cam kết ngầm, như được mô tả trong tài liệu MySQL

Ping

Một gói ping có thể được gửi qua kết nối bằng phương thức

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

02. Phương thức này sẽ gửi một gói ping đến máy chủ và khi máy chủ phản hồi, cuộc gọi lại sẽ bắn. Nếu xảy ra lỗi, cuộc gọi lại sẽ bắn với một đối số lỗi.

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

9

Thời gian chờ

Mỗi hoạt động đều có một tùy chọn thời gian chờ không hoạt động tùy chọn. Điều này cho phép bạn chỉ định thời gian chờ phù hợp cho các hoạt động. Điều quan trọng cần lưu ý là các thời gian chờ này không phải là một phần của giao thức MYSQL và thay vào đó là các hoạt động thời gian chờ thông qua máy khách. Điều này có nghĩa là khi đạt được thời gian chờ, kết nối nó xảy ra sẽ bị phá hủy và không có hoạt động nào có thể được thực hiện.

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

0

Xử lý lỗi

Mô -đun này đi kèm với một cách tiếp cận nhất quán để xử lý lỗi mà bạn nên xem xét cẩn thận để viết các ứng dụng vững chắc.

Hầu hết các lỗi được tạo bởi mô -đun này là các trường hợp của đối tượng lỗi JavaScript. Ngoài ra, chúng thường đi kèm với hai thuộc tính bổ sung:

  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    03: Chuỗi, chứa ký hiệu lỗi máy chủ MySQL nếu lỗi là lỗi máy chủ MySQL (ví dụ:

    var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    04), mã lỗi Node.js nếu đó là lỗi Node.js (ví dụ:

    var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    05) hoặc mã lỗi nội bộ (ví dụ: ____306 ).
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    07: Số, chứa số lỗi máy chủ MySQL. Chỉ có lỗi từ lỗi máy chủ MySQL.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    08: Boolean, cho biết nếu lỗi này là thiết bị đầu cuối của đối tượng kết nối. Nếu lỗi không phải từ hoạt động giao thức MySQL, thuộc tính này sẽ không được xác định.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    09: Chuỗi, chứa toàn bộ SQL của truy vấn không thành công. Điều này có thể hữu ích khi sử dụng giao diện cấp cao hơn như ORM đang tạo các truy vấn.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    10: Chuỗi, chứa giá trị SQLState năm ký tự. Chỉ có lỗi từ lỗi máy chủ MySQL.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    11: Chuỗi, chứa chuỗi tin nhắn cung cấp mô tả văn bản về lỗi. Chỉ có lỗi từ lỗi máy chủ MySQL.

Lỗi nghiêm trọng được truyền đến tất cả các cuộc gọi lại đang chờ xử lý. Trong ví dụ dưới đây, một lỗi nghiêm trọng được kích hoạt bằng cách cố gắng kết nối với một cổng không hợp lệ. Do đó, đối tượng lỗi được truyền đến cả hai cuộc gọi lại đang chờ xử lý:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

1

Tuy nhiên, các lỗi thông thường chỉ được giao cho cuộc gọi lại mà chúng thuộc về. Vì vậy, trong ví dụ dưới đây, chỉ có cuộc gọi lại đầu tiên nhận được lỗi, truy vấn thứ hai hoạt động như mong đợi:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

2

Cuối cùng nhưng không kém phần quan trọng: nếu xảy ra lỗi nghiêm trọng và không có cuộc gọi lại đang chờ xử lý hoặc xảy ra lỗi thông thường không có cuộc gọi lại thuộc về nó, lỗi được phát ra dưới dạng sự kiện

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

12 trên đối tượng kết nối. Điều này được thể hiện trong ví dụ dưới đây:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

3

Lưu ý:

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

12 Sự kiện là đặc biệt trong nút. Nếu chúng xảy ra mà không có người nghe đính kèm, một dấu vết ngăn xếp được in và quá trình của bạn bị giết.

TL; DR: Mô -đun này không muốn bạn đối phó với những thất bại im lặng. Bạn phải luôn luôn cung cấp các cuộc gọi lại cho các cuộc gọi phương thức của bạn. Nếu bạn muốn bỏ qua lời khuyên này và đàn áp các lỗi chưa được xử lý, bạn có thể làm điều này: This module does not want you to deal with silent failures. You should always provide callbacks to your method calls. If you want to ignore this advice and suppress unhandled errors, you can do this:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

4

An toàn ngoại lệ

Mô -đun này là ngoại lệ an toàn. Điều đó có nghĩa là bạn có thể tiếp tục sử dụng nó, ngay cả khi một trong các chức năng gọi lại của bạn có lỗi mà bạn đang bắt được bằng cách sử dụng 'UncaughtException' hoặc một tên miền.

Loại đúc

Để thuận tiện cho bạn, trình điều khiển này sẽ chuyển các loại MySQL thành các loại JavaScript gốc theo mặc định. Các ánh xạ sau đây tồn tại:

Con số

  • Tinyint
  • Nhỏ
  • Int
  • Trung bình
  • NĂM
  • TRÔI NỔI
  • KÉP

Ngày

  • Dấu thời gian
  • NGÀY
  • NGÀY GIỜ

Đệm

  • Tinyblob
  • Trung bình
  • Longblob
  • BÃI
  • Nhị phân
  • Varbinary
  • Bit (byte cuối cùng sẽ được lấp đầy với 0 bit khi cần thiết)

Sợi dây

Lưu ý Văn bản trong bộ ký tự nhị phân được trả về dưới dạng

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

14, thay vì một chuỗi. text in the binary character set is returned as

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

14, rather than a string.

  • Char
  • Varchar
  • Tinytext
  • Tương tự
  • VĂN BẢN DÀI
  • CHỮ
  • Enum
  • BỘ
  • Thập phân (có thể vượt quá độ chính xác nổi)
  • Bigint (có thể vượt quá độ chính xác nổi)
  • Thời gian (có thể được ánh xạ cho đến nay, nhưng ngày nào sẽ được đặt?)
  • Hình học (không bao giờ sử dụng chúng, hãy liên lạc nếu bạn làm)

Không được khuyến nghị (và có thể biến mất / thay đổi trong tương lai) để vô hiệu hóa loại đúc, nhưng hiện tại bạn có thể làm như vậy trên kết nối:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

5

Hoặc ở cấp độ truy vấn:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

6

Loại đúc kiểu tùy chỉnh

Bạn cũng có thể vượt qua một chức năng và xử lý loại tự đúc. Bạn đang cung cấp một số thông tin cột như cơ sở dữ liệu, bảng và tên và cả loại và độ dài. Nếu bạn chỉ muốn áp dụng một loại đúc kiểu tùy chỉnh cho một loại cụ thể, bạn có thể làm điều đó và sau đó dự phòng về mặc định.

Hàm được cung cấp hai đối số

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

15 và

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

16 và dự kiến ​​sẽ trả về giá trị cho trường đã cho bằng cách gọi các hàm của trình phân tích cú pháp thông qua đối tượng

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

15.

Đối số

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

15 là đối tượng

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

19 và chứa dữ liệu về trường cần được phân tích cú pháp. Sau đây là một số thuộc tính trên đối tượng

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

19:

  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    21 - Một chuỗi cơ sở dữ liệu mà trường đến từ.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    22 - Một chuỗi của bảng Trường đến từ.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    23 - Một chuỗi của tên trường.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    24 - Một chuỗi của loại trường trong tất cả các mũ.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    25 - Một số độ dài trường, như được đưa ra bởi cơ sở dữ liệu.

Đối số

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

16 là một

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

27, khi được gọi, sẽ trả về chuyển đổi loại mặc định cho trường đã cho.

Khi nhận được dữ liệu trường, các phương thức trợ giúp sau đây có mặt trên đối tượng

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

15:

  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    29 - Phân tích trường vào một chuỗi.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    30 - Phân tích trường vào

    var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    14.
  • var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    32 - Phân tích trường là giá trị hình học.

Giao thức MySQL là một giao thức dựa trên văn bản. Điều này có nghĩa là trên dây, tất cả các loại trường được biểu diễn dưới dạng chuỗi, đó là lý do tại sao chỉ có các hàm giống như chuỗi có sẵn trên đối tượng

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

15. Dựa trên thông tin loại (như

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

34), loại diễn viên nên chuyển đổi trường chuỗi thành loại JavaScript khác (như

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

35).

Dưới đây là một ví dụ về việc chuyển đổi

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

36 thành Boolean:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

7

CẢNH BÁO: Bạn phải gọi trình phân tích cú pháp bằng một trong ba chức năng trường này trong cuộc gọi lại kiểu chữ tùy chỉnh của bạn. Họ chỉ có thể được gọi một lần.

Các vấn đề về gỡ lỗi và báo cáo

Nếu bạn đang gặp vấn đề, một điều có thể giúp là cho phép chế độ

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'localhost',

  user     : 'me',

  password : 'secret',

  database : 'my_db'

});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {

  if (error) throw error;

  console.log('The solution is: ', results[0].solution);

});

connection.end();

08 cho kết nối:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

8

Điều này sẽ in tất cả các gói đến và đi trên stdout. Bạn cũng có thể hạn chế gỡ lỗi cho các loại gói bằng cách chuyển một mảng các loại để gỡ lỗi:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    ca : fs.readFileSync(__dirname + '/mysql-ca.crt')

  }

});

9

Để hạn chế gỡ lỗi cho các gói truy vấn và dữ liệu.

Nếu điều đó không giúp đỡ, hãy thoải mái mở một vấn đề GitHub. Một vấn đề github tốt sẽ có:

  • Số lượng mã tối thiểu cần thiết để tái tạo vấn đề (nếu có thể)
  • Như nhiều đầu ra gỡ lỗi và thông tin về môi trường của bạn (phiên bản MySQL, phiên bản nút, hệ điều hành, v.v.) như bạn có thể thu thập.

Vấn đề an ninh

Các vấn đề bảo mật không nên được báo cáo đầu tiên thông qua GitHub hoặc một diễn đàn công cộng khác, nhưng được giữ riêng để các cộng tác viên đánh giá báo cáo và (a) đưa ra một sửa chữa và lên kế hoạch cho ngày phát hành hoặc (b) khẳng định rằng đó không phải là một Vấn đề (trong trường hợp đó nó có thể được đăng trong một diễn đàn công cộng, như vấn đề GitHub).

Diễn đàn riêng tư chính là email, bằng cách gửi email cho tác giả của mô -đun hoặc mở vấn đề GitHub chỉ cần yêu cầu ai là vấn đề bảo mật nên được giải quyết mà không tiết lộ vấn đề hoặc loại vấn đề.

Một báo cáo lý tưởng sẽ bao gồm một dấu hiệu rõ ràng về vấn đề bảo mật là gì và nó sẽ được khai thác như thế nào, lý tưởng với một bằng chứng về khái niệm đi kèm ("POC") để các cộng tác viên làm việc chống lại và xác nhận các bản sửa lỗi thông thường chống lại.

Đóng góp

Dự án này hoan nghênh những đóng góp từ cộng đồng. Đóng góp được chấp nhận bằng cách sử dụng các yêu cầu kéo GitHub. Nếu bạn không quen với việc thực hiện các yêu cầu kéo GitHub, vui lòng tham khảo tài liệu GitHub "Tạo yêu cầu kéo".

Đối với một yêu cầu kéo tốt, chúng tôi yêu cầu bạn cung cấp những điều sau:

  1. Cố gắng bao gồm một mô tả rõ ràng về yêu cầu kéo của bạn trong mô tả. Nó nên bao gồm "What" và "tại sao" cơ bản cho yêu cầu.
  2. Các bài kiểm tra nên vượt qua tốt nhất có thể. Xem phần Kiểm tra đang chạy về cách chạy các thử nghiệm khác nhau. GitHub cũng sẽ tự động chạy các bài kiểm tra, để hoạt động như một mạng lưới an toàn.
  3. Yêu cầu kéo nên bao gồm các bài kiểm tra cho sự thay đổi. Một tính năng mới nên có các thử nghiệm cho tính năng mới và sửa lỗi nên bao gồm một thử nghiệm không thành công mà không thay đổi mã tương ứng và vượt qua sau khi chúng được áp dụng. Lệnh

    var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    38 sẽ tạo thư mục

    var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    39 có chứa các trang HTML của phạm vi bảo hiểm, để hiểu rõ hơn nếu mọi thứ bạn thêm đang được kiểm tra.
  4. Nếu yêu cầu kéo là một tính năng mới, vui lòng đảm bảo bao gồm tất cả các bổ sung tài liệu phù hợp trong tệp

    var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    40.
  5. Để giúp đảm bảo rằng mã của bạn có kiểu tương tự như mã hiện có, hãy chạy lệnh

    var mysql      = require('mysql');

    var connection = mysql.createConnection(...);

    connection.query('SELECT 1', function (error, results, fields) {

      if (error) throw error;

    });

    41 và khắc phục mọi sự cố được hiển thị.

Chạy thử nghiệm

Bộ thử nghiệm được chia thành hai phần: kiểm tra đơn vị và kiểm tra tích hợp. Các thử nghiệm đơn vị chạy trên bất kỳ máy nào trong khi các thử nghiệm tích hợp yêu cầu thiết lập máy chủ MySQL được thiết lập.

Chạy bài kiểm tra đơn vị

Chạy kiểm tra tích hợp

Đặt các biến môi trường

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

42,

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

43,

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

44,

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

45 và

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

46.

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

47 cũng có thể được sử dụng thay cho

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

43 và

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

44 để kết nối qua ổ cắm UNIX. Sau đó chạy

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

50.

Ví dụ: nếu bạn có cài đặt MySQL chạy trên localhost: 3306 và không có mật khẩu được đặt cho người dùng

var mysql      = require('mysql');

var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {

  if (error) throw error;

});

51, hãy chạy:

var connection = mysql.createConnection({

  host : 'localhost',

  ssl  : {

    rejectUnauthorized: false

  }

});

0

Làm

  • Tuyên bố chuẩn bị
  • Hỗ trợ cho các mã hóa khác với UTF-8 / ASCII

Node.js có tốt với mysql không?

Nói chung, nút.JS được kết hợp với MongoDB và các cơ sở dữ liệu NoQuery khác, nhưng Node.js cũng hoạt động tốt với các cơ sở dữ liệu quan hệ như MySQL.Nếu bạn muốn viết một microservice mới với nút.Node. js performs well with relational databases like MySQL, too. If you want to write a new microservice with Node.

Node.js có tốt với SQL không?

Node.js thường hỗ trợ tất cả các loại cơ sở dữ liệu, bất kể chúng là SQL hay NoQuery.Tuy nhiên, việc lựa chọn cơ sở dữ liệu phải được thực hiện dựa trên sự phức tạp và mục đích của ứng dụng của bạn.Trong bài viết này, chúng tôi sẽ xem xét kỹ hơn về cơ sở dữ liệu SQL và NoQuery, cũng như các ví dụ thực tế của họ. js typically supports all database types, regardless of whether they're SQL or NoSQL. Nevertheless, the choice of a database must be made based on the complexity and purposes of your application. In this article, we will take a closer look at SQL and NoSQL databases, as well as at their practical examples.

Cái nào tốt hơn với Node.js MySQL hoặc MongoDB?

Nếu bạn có dữ liệu quan hệ MySQL là một lựa chọn vượt trội so với MongoDB.Đối với những thứ đơn giản MongoDB là tốt, nhưng khi cố gắng gắn kết nhiều dữ liệu quan hệ với nhau MongoDB là một cơn ác mộng.. For simple stuff MongoDB is fine, but when trying to tie a lot of relational data together MongoDB is a nightmare.

Node.js có tốt cho cơ sở dữ liệu quan hệ không?

Node.js hỗ trợ tất cả các loại cơ sở dữ liệu, bao gồm cơ sở dữ liệu quan hệ và NoQuery.Tuy nhiên, nút.Cơ sở dữ liệu JS NoQuery là phù hợp nhất cho hầu hết các ứng dụng và trường hợp sử dụng trên toàn công ty. js supports all types of databases, including relational and NoSQL databases. However, Node. js NoSQL databases are the best match for most applications and company-wide use-cases.