Node.js có thể được sử dụng trong các ứng dụng cơ sở dữ liệu.
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 //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
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: //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ữ
3]: #node.js [on freenode.net, I pay attention to any message including the termvar connection = mysql.createConnection[{
host : 'localhost',
ssl : {
rejectUnauthorized: false
}
}];
3]var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
rejectUnauthorized: false
}
}];
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:
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ụngvar 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[{
host : 'localhost',
ssl : {
rejectUnauthorized: false
}
}];
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 JavaScriptvar connection = mysql.createConnection[{
flags: '-FOUND_ROWS,IGNORE_SPACE'
}];
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ạngconnection.end[function[err] {
}];
3 hoặcconnection.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]connection.end[function[err] {
}];
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: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];
}];
9]connection.end[function[err] {
}];
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: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];
}];
9].connection.end[function[err] {
}];
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: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];
}];
9]. Kích hoạtconnection.end[function[err] {
}];
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ếuvar 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 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];
}];
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: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]connection.end[function[err] {
}];
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: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]connection.end[function[err] {
}];
12: Tạo dấu vết ngăn xếp trênvar 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 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]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];
}];
15: Cho phépvar 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 đổivar 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 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]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];
}];
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: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]connection.end[function[err] {
}];
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.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[];
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
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ừ //rds.amazonaws.com/doc/rds-ssl-ca-cert.pem và //s3.amazonaws.com/rds -DOWNOALSS/RDS-COMBORD-CA-BUNDLE.PEMvar 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[];
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
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 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[];
var connection = mysql.createConnection[{
flags: '-FOUND_ROWS,IGNORE_SPACE'
}];
Các cờ sau đây có sẵn:
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ướcvar 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ụngvar 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ốivar 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ằngvar 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ốivar 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[];
43var 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ốivar 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ốivar 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]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[];
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
2:var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
rejectUnauthorized: false
}
}];
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
57 đến máy chủ MySQL. Nếu một lỗi gây tử vong xảy ra trước góivar 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 đó.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[];
Một cách khác để kết thúc kết nối là gọi phương thức
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.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[];
Không giống như
2 Phương thứcvar connection = mysql.createConnection[{
host : 'localhost',
ssl : {
rejectUnauthorized: false
}
}];
60 không có đối số 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[];
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
64. Đọc thêm về kết nối gộ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[];
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
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ụngvar 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 đếnvar 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[];
0var 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[];
Nếu bạn muốn đóng kết nối và xóa nó khỏi nhóm, hãy sử dụng
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.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á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:
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ớivar 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, 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]connection.end[function[err] {
}];
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ếuvar 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, nhóm sẽ xếp hàng yêu cầu kết nối và gọi nó khi có sẵn. Nếuvar 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];
}];
9, nhóm sẽ ngay lập tức gọi lại với lỗi. [Mặc định:connection.end[function[err] {
}];
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];
}];
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ànhvar 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]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[];
Sự kiện bể bơi
có được, thu được
Bể bơi sẽ phát ra một sự kiện
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[];
1var 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[];
sự liên quan
Bể bơi sẽ phát ra một sự kiện
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ệnvar 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[];
2var 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[];
enqueue
Bể bơi sẽ phát ra một sự kiện
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[];
3var 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[];
phóng thích
Bể bơi sẽ phát ra một sự kiện
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[];
4var 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[];
Đó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
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[];
5var 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[];
Phương thức
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.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[];
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[]; 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[]; 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[]; 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[]; 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[]; 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[]; 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,
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
91. Nếu bạn sử dụng phương pháp phím tắt
94, thay cho
92 →
96 →
97, hãy đợi cho đến khi hoàn thành. Wait until all connections in the pool are released before calling
91. If you use the shortcut methodvar 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 ofvar 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ọivar 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óivar 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[];
00 trên kết nối và đặt cờ để ngăn chặnvar 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 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.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[];
Poolcluster
PoolCluster cung cấp nhiều kết nối máy chủ. [Nhóm & Thử lại & Bộ chọn]
6var 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[];
Tùy chọn bao gồm nhóm
02: Nếuvar 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,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];
}];
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 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]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];
}];
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. Khivar 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ơnvar 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 trongvar 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ànhvar 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, 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 : '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: 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 : '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];
}];
7var 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[];
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:
8var 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ác tùy chọn có sẵn cho tính năng này là:
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].var connection = mysql.createConnection[{
flags: '-FOUND_ROWS,IGNORE_SPACE'
}];
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ó
24. Xem phần Xử lý lỗi để biết thêm thông tin.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];
}];
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
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ỗivar 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ìnhvar 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.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];
}];
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
28 trên một đối tượng [như phiên bảnvar 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ặcvar 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].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];
}];
Hình thức đơn giản nhất của .________ 232 là
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 : '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];
}];
9var 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[];
Mẫu thứ hai
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];
}];
0var 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];
}];
Mẫu thứ ba
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];
}];
1var 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];
}];
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ố
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];
}];
2var 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];
}];
Nếu truy vấn chỉ có một ký tự thay thế duy nhất [
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 chovar 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];
}];
3var 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];
}];
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
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ặcvar 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];
}];
4var 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];
}];
Ngoài ra, bạn có thể sử dụng các ký tự
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];
}];
5var 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];
}];
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
46 bằngvar 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ằngvar 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ằngvar 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];
}];
6var 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];
}];
Đ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
43 bên 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];
}];
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
38 are replaced, even those contained in comments and strings.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];
}];
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
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];
}];
9connection.end[function[err] {
}];
- Đối tượng ngày được chuyển đổi thành chuỗi
58var 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];
}];
- Bộ đệm được chuyển đổi thành chuỗi hex, ví dụ:
59var 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];
}];
- 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ụ:
60 biến thànhvar 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];
}];
61var 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];
}];
- Mảng lồng được chuyển thành danh sách nhóm [để chèn số lượng lớn], ví dụ:
62 biến thànhvar 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];
}];
63var 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];
}];
- Các đối tượng có phương thức
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ô.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];
}];
- Các đối tượng được biến thành các cặp
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ànhvar 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];
}];
69var 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ợ.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];
}];
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:
7var 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];
}];
Và phương thức
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];
}];
8var 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];
}];
Để tạo các đối tượng bằng phương pháp
64, phương thứcvar 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: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];
}];
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
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];
}];
9var 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];
}];
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:
0var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
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ặcvar 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[{
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];
}];
1var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
Nó cũng hỗ trợ thêm định danh đủ điều kiện. Nó sẽ thoát khỏi cả hai phần.
2var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
Nếu bạn không muốn coi
80 là định danh đủ điều kiện, bạn có thể đặt đối số thứ hai thànhvar 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 để giữ chuỗi làm định danh theo nghĩa đen: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];
}];
3var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
Ngoài ra, bạn có thể sử dụng các ký tự
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[{
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];
}];
4var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
83 hoặcvar 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.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];
}];
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:
5var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
83 hoặc bất kỳ chức năng kết nối nào khá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];
}];
Đây là một ví dụ về cách thực hiện định dạng khác:
6var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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:
7var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
5 để có thể đọc ID chèn dưới dạng chuỗi, nếu không nó sẽ gây ra lỗi.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];
}];
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.
8var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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.
9var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
88.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];
}];
0var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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:
1var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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
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ệnvar 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ọivar 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];
}];
- Bạn không được cung cấp một cuộc gọi lại cho phương thức
32 khi phát trực tuyến hà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];
}];
- Sự kiện
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.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];
}];
- Đ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
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.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];
}];
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
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ànhvar 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 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].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];
}];
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à:
2var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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:
3var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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:
4var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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:
5var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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
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.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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:
6var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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.
7var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
Giao dịch
Hỗ trợ giao dịch đơn giản có sẵn ở cấp độ kết nối:
8var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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
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 mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
9var connection = mysql.createConnection['mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'];
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.
0var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
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:
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.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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ý:
1var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
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:
2var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
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
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 mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
3var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
Lưu ý:
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.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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:
4var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
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
14, rather than a string.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
- 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:
5var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
Hoặc ở cấp độ truy vấn:
6var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
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ố
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ượngvar 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;
}];
Đối số
15 là đối tượngvar 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ượngvar 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.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
Đối số
16 là mộtvar 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.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
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àovar 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.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
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].var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
Dưới đây là một ví dụ về việc chuyển đổi
36 thành Boolean:var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
7var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
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ế độ
08 cho 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[];
8var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
Đ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:
9var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
ca : fs.readFileSync[__dirname + '/mysql-ca.crt']
}
}];
Để 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:
- 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.
- 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.
- 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
38 sẽ tạo thư mụcvar 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.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
- 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
40.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
- Để 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
41 và khắc phục mọi sự cố được hiển thị.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
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 chovar 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ạyvar mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
50.var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
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
51, hãy chạy:var mysql = require['mysql'];
var connection = mysql.createConnection[...];
connection.query['SELECT 1', function [error, results, fields] {
if [error] throw error;
}];
0var connection = mysql.createConnection[{
host : 'localhost',
ssl : {
rejectUnauthorized: false
}
}];
Làm
- Tuyên bố chuẩn bị
- Hỗ trợ cho các mã hóa khác với UTF-8 / ASCII