Mysql2/lời hứa CHÈN

Geshan là một kỹ sư phần mềm dày dạn kinh nghiệm với hơn một thập kỷ kinh nghiệm về kỹ thuật phần mềm. Anh ấy rất quan tâm đến kiến ​​trúc REST, microservice và điện toán đám mây. Ông cũng viết blog tại geshan. com. np

NodeJ. Nền tảng nguồn mở để thực thi mã javascript ở phía máy chủ. Ngoài ra, thời gian chạy javascript được xây dựng trên công cụ JavaScript V8 của Chrome. Nó có thể được tải về từ đây. Mysql  Hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở (RDBMS) sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL). Đây là ngôn ngữ phổ biến nhất để thêm, truy cập và quản lý nội dung trong cơ sở dữ liệu. Ở đây chúng tôi sẽ sử dụng Mysql làm cơ sở dữ liệu cho ứng dụng nút của chúng tôi. Nó có thể được tải về từ đây

Trong bài viết này, chúng ta sẽ tìm hiểu cách chèn hàng vào bảng SQL bằng cách sử dụng Node. js. Với sự trợ giúp của SQL INSERT Query

Khởi tạo nút. dự án js

npm init

Cài đặt mô-đun.  

npm install express
npm install mysql

Cấu trúc tệp

Cấu trúc cơ sở dữ liệu MySQL

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).

kết nối sql. js




gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
36

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
37
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
38
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
39

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
40

npm install express
npm install mysql
0

npm install express
npm install mysql
1

npm install express
npm install mysql
2
npm install express
npm install mysql
3
npm install express
npm install mysql
4
npm install express
npm install mysql
5

npm install express
npm install mysql
2
npm install express
npm install mysql
7
npm install express
npm install mysql
8
npm install express
npm install mysql
5

npm install express
npm install mysql
2____21____22
npm install express
npm install mysql
5

npm install express
npm install mysql
2
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
5
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
6

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
7

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
40

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
9

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
20

npm install express
npm install mysql
2____222
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
23

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
24
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
25____226
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
27

npm install express
npm install mysql
2____229____320
npm install express
npm install mysql
21

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
24
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
25____324
gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
39

npm install express
npm install mysql
2____229

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
7

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
40

gfg_db DATABASE.
gfg_table (id INT AUTO_INCREMENT PRIMARY KEY, 
  name VARCHAR(255), address VARCHAR(255)).
360

Bất cứ khi nào chúng tôi muốn thực hiện truy vấn, chúng tôi sẽ nhập mô-đun db_con vào tệp đó. Điều này sẽ tăng tính mô đun của mã của chúng tôi

chức năng không đồng bộ startServer () { const client = đang chờ MongoClient. kết nối ('mongodb. //máy chủ cục bộ. 27017/quản trị viên', {useNewUrlParser. true}) ứng dụng. bối cảnh. torrentdb = máy khách. ứng dụng db('torrent'). bối cảnh. mdb = đang chờ mysql. createPool({ giới hạn kết nối. 5, máy chủ. 'máy chủ cục bộ', người dùng. 'gốc', mật khẩu. '', Hải cảng. 9306, nhiều câu lệnh. đúng }) ứng dụng. lắng nghe (quá trình. env. HẢI CẢNG. 3000, không đồng bộ () => { bảng điều khiển. log(new Date(), 'Máy chủ đang lắng nghe. ') nếu (tiến trình. gửi) { quá trình. gửi('sẵn sàng') } }) }

Tùy chọn

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

  • npm install express
    npm install mysql
    004. hồ sơ này dùng để kết nối với máy chủ Amazon RDS và chứa các chứng chỉ từ https. //rds. amazonaws. com/doc/rds-ssl-ca-cert. pem và https. //s3. amazonaws. com/rds-downloads/rds-combined-ca-bundle. pem

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

npm install express
npm install mysql
2

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

npm install express
npm install mysql
3

Cờ kết nối

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

npm install express
npm install mysql
001. Chuyển một chuỗi có 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 sử dụng cờ mặc định, hãy thêm cờ có dấu trừ vào trước. Để thêm một cờ không có trong danh sách mặc định, chỉ cần viết tên cờ hoặc thêm tiền tố đó bằng dấu cộng (không phân biệt chữ hoa chữ thường)

npm install express
npm install mysql
5

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

  • npm install express
    npm install mysql
    006 - Kích hoạt tính năng nén giao thức. Tính năng này hiện không được hỗ trợ bởi Node. js nên không bật được. (Mặc định tắt)
  • npm install express
    npm install mysql
    007 - Khả năng chỉ định cơ sở dữ liệu khi kết nối. (Mặc định bật)
  • npm install express
    npm install mysql
    008 - Gửi các hàng đã tìm thấy thay vì các hàng bị ảnh hưởng dưới dạng
    npm install express
    npm install mysql
    009. (Mặc định bật)
  • npm install express
    npm install mysql
    010 - Không phát hành SIGPIPE nếu lỗi mạng. Cờ này không có hiệu lực trên Nút này. triển khai js. (Mặc định bật)
  • npm install express
    npm install mysql
    011 - Hãy để trình phân tích cú pháp bỏ qua khoảng trắng trước
    npm install express
    npm install mysql
    012 trong các truy vấn. (Mặc định bật)
  • npm install express
    npm install mysql
    013 - Cho máy chủ MySQL biết đây là ứng dụng 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 là tương tác trong danh sách quy trình. (Mặc định tắt)
  • npm install express
    npm install mysql
    014 - Có thể sử dụng
    npm install express
    npm install mysql
    015. (Mặc định bật)
  • npm install express
    npm install mysql
    016 - Cờ dài hơn trong Giao thức. CộtĐịnh nghĩa320. (Mặc định bật)
  • npm install express
    npm install mysql
    017 - Sử dụng phiên bản cải tiến của Xác thực mật khẩu cũ. (Mặc định bật)
  • npm install express
    npm install mysql
    018 - Có thể xử lý nhiều tập kết quả cho các truy vấn. (Mặc định bật)
  • npm install express
    npm install mysql
    019 - 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ởi
    npm install express
    npm install mysql
    020). Cờ này được điều khiển bởi tùy chọn kết nối
    npm install express
    npm install mysql
    19. (Mặc định tắt)
  • npm install express
    npm install mysql
    022
  • npm install express
    npm install mysql
    023 Xử lý đặc biệt hành vi ODBC. Cờ này không có hiệu lực trên Nút này. triển khai js. (Mặc định bật)
  • npm install express
    npm install mysql
    024 - 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 Node. js nên không bật được. (Mặc định tắt)
  • npm install express
    npm install mysql
    025 - Sử dụng 4. 1 giao thức. (Mặc định bật)
  • npm install express
    npm install mysql
    026 - Có thể xử lý nhiều tập kết quả để thực thi. (Mặc định bật)
  • npm install express
    npm install mysql
    027 - Điều này dành riêng cho máy khách C và không ảnh hưởng đến Nút này. triển khai js. (Mặc định tắt)
  • npm install express
    npm install mysql
    028 - Cờ cũ cho 4. 1 giao thức. (Mặc định bật)
  • npm install express
    npm install mysql
    029 - Hỗ trợ bản địa 4. 1 xác thực. (Mặc định bật)
  • npm install express
    npm install mysql
    030 - Sử dụng SSL sau khi bắt tay để mã hóa dữ liệu khi vận chuyển. Tính năng này được kiểm soát thông qua tùy chọn kết nối
    npm install express
    npm install mysql
    002, vì vậy cờ không có tác dụng. (Mặc định tắt)
  • npm install express
    npm install mysql
    032 - 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 thông qua tùy chọn kết nối
    npm install express
    npm install mysql
    033, vì vậy cờ không có tác dụng. (Mặc định tắt)
  • npm install express
    npm install mysql
    034 - Yêu cầu cờ trạng thái giao dịch. (Mặc định bật)

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

Có hai cách để kết thúc kết nối. Chấm dứ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

npm install express
npm install mysql
57

npm install express
npm install mysql
6

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

npm install express
npm install mysql
036 đến máy chủ MySQL. Nếu một lỗi nghiêm trọng xảy ra trước khi gói
npm install express
npm install mysql
036 có thể được gửi, một đối số
npm install express
npm install mysql
038 sẽ được cung cấp cho cuộc gọi lại, nhưng kết nối sẽ bị chấm dứt bất kể điều đó

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

npm install express
npm install mysql
039. Điều này sẽ gây ra sự chấm dứt ngay lập tức của ổ cắm bên dưới. Ngoài ra,
npm install express
npm install mysql
039 đảm bảo rằng sẽ không có thêm sự kiện hoặc cuộc gọi lại nào được kích hoạt cho kết nối

npm install express
npm install mysql
2

Không giống như

npm install express
npm install mysql
57, phương pháp
npm install express
npm install mysql
039 không gây ra lỗi

kết nối tổng hợp

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

npm install express
npm install mysql
043. Đọc thêm về tổng hợp kết nối

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

npm install express
npm install mysql
6

truy vấn duy nhất

npm install express
npm install mysql
7

kiểm tra một khách hàng

npm install express
npm install mysql
1

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

npm install express
npm install mysql
044 để thay thế. Nhóm sẽ tạo một kết nối mới vào lần tiếp theo khi cần thiết

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

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

tùy chọn hồ bơi

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

  • npm install express
    npm install mysql
    045. Một phần nghìn giây trước khi hết thời gian chờ trong quá trình thu nhận kết nối. Điều này hơi khác so với
    npm install express
    npm install mysql
    60, 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 yêu cầu kết nối được xếp hàng đợi, 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.
    npm install express
    npm install mysql
    61)
  • npm install express
    npm install mysql
    048. Xác định hành động của nhóm khi không có kết nối nào và đã đạt đến giới hạn. Nếu
    npm install express
    npm install mysql
    67, nhóm sẽ xếp hàng yêu cầu kết nối và gọi nó khi có sẵn. Nếu
    npm install express
    npm install mysql
    63, nhóm sẽ ngay lập tức gọi lại với một lỗi. (Mặc định.
    npm install express
    npm install mysql
    67)
  • npm install express
    npm install mysql
    052. Số lượng kết nối tối đa để tạo cùng một lúc. (Mặc định.
    npm install express
    npm install mysql
    053)
  • npm install express
    npm install mysql
    054. 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ả về lỗi từ
    npm install express
    npm install mysql
    055. Nếu được đặt thành
    npm install express
    npm install mysql
    056, không có giới hạn về số lượng yêu cầu kết nối được xếp hàng đợi. (Mặc định.
    npm install express
    npm install mysql
    056)

sự kiện bể bơi

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

Nhóm sẽ phát ra sự kiện

npm install express
npm install mysql
058 khi có được kết nối từ nhóm. Điều này được gọi sau khi tất cả hoạt động thu thập đã được thực hiện trên kết nối, ngay trước khi kết nối được chuyển đến lệnh gọi lại của mã thu thập

npm install express
npm install mysql
00

sự liên quan

Nhóm sẽ phát ra sự kiện

npm install express
npm install mysql
059 khi một kết nối mới được tạo 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 sử dụng, bạn có thể nghe sự kiện
npm install express
npm install mysql
059

npm install express
npm install mysql
01

hàng đợi

Nhóm sẽ phát ra một sự kiện

npm install express
npm install mysql
061 khi một cuộc gọi lại đã được xếp hàng đợi để chờ kết nối khả dụng

npm install express
npm install mysql
02

giải phóng

Nhóm sẽ phát ra sự kiện

npm install express
npm install mysql
062 khi kết nối được giải phóng trở lại nhóm. Điều này được gọi sau khi tất 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 diễn ra sự kiện

npm install express
npm install mysql
03

Đóng tất cả các kết nối trong một nhóm

Khi bạn sử dụng xong nhóm, bạn phải kết thúc tất cả các kết nối hoặc Nút. vòng lặp sự kiện js sẽ vẫn hoạt động cho đến khi các kết nối bị đó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 pháp

npm install express
npm install mysql
063 trên nhóm

npm install express
npm install mysql
04

Phương thức

npm install express
npm install mysql
063 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 kết thúc

Khi

npm install express
npm install mysql
065 được gọi,
npm install express
npm install mysql
066 và các thao tác khác không thể thực hiện được nữa. Đợi cho đến khi tất cả các kết nối trong nhóm được giải phóng trước khi gọi
npm install express
npm install mysql
065

Cuộc gọi

npm install express
npm install mysql
065
npm install express
npm install mysql
069 trên mọi kết nối đang hoạt động trong nhóm. Điều này xếp hàng một gói
npm install express
npm install mysql
070 trên kết nối và đặt cờ để ngăn
npm install express
npm install mysql
066 tạo kết nối mới. Tất cả các lệnh/truy vấn đang thực hiện sẽ hoàn tất, nhưng các lệnh mới sẽ không thực thi

Thực hiện truy vấn

npm install express
npm install mysql
05

hồ bơi. truy vấn là như nhau

npm install express
npm install mysql
06

Thoát các giá trị truy vấn

Thận trọng Các phương pháp thoát giá trị này chỉ hoạt động khi chế độ SQL bị tắt (là trạng thái mặc định cho máy chủ MySQL)

Để tránh các cuộc tấn công SQL Injection, bạn phải luôn thoát mọi dữ liệu do người dùng cung cấp trước khi sử dụng nó trong một truy vấn SQL. Bạn có thể làm như vậy bằng cách sử dụng các phương pháp

npm install express
npm install mysql
072,
npm install express
npm install mysql
073 hoặc
npm install express
npm install mysql
074

mysql. thoát khỏi

npm install express
npm install mysql
07

sự liên quan. thoát khỏi

npm install express
npm install mysql
08

hồ bơi. thoát khỏi

npm install express
npm install mysql
09

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

npm install express
npm install mysql
075 làm trình giữ chỗ cho các giá trị mà bạn muốn thoát như thế này

npm install express
npm install mysql
20

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

npm install express
npm install mysql
076 bằng với
npm install express
npm install mysql
077,
npm install express
npm install mysql
078 bằng với
npm install express
npm install mysql
079,
npm install express
npm install mysql
080 bằng với
npm install express
npm install mysql
081 và
npm install express
npm install mysql
082 sẽ là
npm install express
npm install mysql
083

npm install express
npm install mysql
21

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

npm install express
npm install mysql
073 trong nội bộ

Thận trọng Điều này cũng khác với câu lệnh đã chuẩn bị ở chỗ tất cả

npm install express
npm install mysql
075 đều được thay thế, ngay cả những câu lệnh có trong nhận xét và chuỗi

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

  • Những con số không bị ảnh hưởng
  • Booleans được chuyển thành ________ 867 / ________ 863
  • Các đối tượng ngày được chuyển đổi thành chuỗi
    npm install express
    npm install mysql
    088
  • Bộ đệm được chuyển đổi thành chuỗi hex, e. g.
    npm install express
    npm install mysql
    089
  • Chuỗi được thoát an toàn
  • Mảng được biến thành danh sách, e. g.
    npm install express
    npm install mysql
    090 biến thành
    npm install express
    npm install mysql
    091
  • Các mảng lồng nhau được chuyển thành các danh sách được nhóm (đối với các phần chèn hàng loạt), e. g. ________ 4092 biến thành ________ 4093
  • Các đối tượng có phương thức
    npm install express
    npm install mysql
    094 sẽ được gọi là
    npm install express
    npm install mysql
    095 và giá trị trả về được sử dụng làm SQL thô
  • Các đối tượng được biến thành các cặp
    npm install express
    npm install mysql
    096 cho mỗi thuộc tính có thể đếm được trên đối tượng. Nếu giá trị của thuộc tính là một hàm, nó sẽ bị bỏ qua;
  • ________ 4097 / ________ 4098 được chuyển đổi thành ________ 4099
  • npm install express
    npm install mysql
    200 /
    npm install express
    npm install mysql
    201 được giữ nguyên. MySQL không hỗ trợ những thứ này và việc cố gắng chèn chúng dưới dạng giá trị sẽ gây ra lỗi MySQL cho đến khi chúng triển khai hỗ trợ

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

npm install express
npm install mysql
22

Và phương pháp

npm install express
npm install mysql
094 cho phép bạn tạo các truy vấn phức tạp với các hàm

npm install express
npm install mysql
23

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

npm install express
npm install mysql
094, có thể sử dụng phương thức
npm install express
npm install mysql
204. Điều này tạo ra một đối tượng sẽ không được chạm vào khi sử dụng trong trình giữ chỗ
npm install express
npm install mysql
075, hữu ích cho việc sử dụng các hàm làm giá trị động

Thận trọng Chuỗi được cung cấp cho

npm install express
npm install mysql
204 sẽ bỏ qua tất cả các hàm thoát khi được sử dụng, vì vậy hãy cẩn thận khi chuyển đầu vào chưa được xác thực

npm install express
npm install mysql
24

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

npm install express
npm install mysql
25

Thoát định danh truy vấn

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

npm install express
npm install mysql
207 làm trình giữ chỗ cho các mã định danh mà bạn muốn thoát như thế này

npm install express
npm install mysql
26

Lấy id của một hàng được 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

npm install express
npm install mysql
27

Khi xử lý các số lớn (vượt quá giới hạn độ chính xác của Số JavaScript), bạn nên cân nhắc bật tùy chọn

npm install express
npm install mysql
69 để có thể đọc id chèn dưới dạng chuỗi, nếu không nó sẽ báo lỗi

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

Lấy số hàng bị ảnh hưởng

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

npm install express
npm install mysql
28

Lấy số hàng đã thay đổi

Bạn có thể lấy số hàng đã thay đổi từ câu lệnh cập nhật

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

npm install express
npm install mysql
29

Thực hiện 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 song song các truy vấn. Bạn có thể sử dụng Nhóm để quản lý 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 các hàng truy vấn

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

npm install express
npm install mysql
30

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 một lượng hàng nhất định trước khi bắt đầu tăng tốc kết nối bằng cách sử dụng
    npm install express
    npm install mysql
    209. Con số này sẽ phụ thuộc vào số lượng và kích thước hàng của bạn
  • npm install express
    npm install mysql
    209 /
    npm install express
    npm install mysql
    211 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 sẽ không có sự kiện
    npm install express
    npm install mysql
    212 nào kích hoạt sau khi gọi
    npm install express
    npm install mysql
    209
  • Bạn KHÔNG ĐƯỢC cung cấp lệnh gọi lại cho phương thức
    npm install express
    npm install mysql
    214 khi truyền phát hàng
  • Sự kiện
    npm install express
    npm install mysql
    212 sẽ kích hoạt cho cả hai hàng cũng như các gói OK xác nhận thành công của truy vấn CHÈN/CẬP NHẬT
  • Điều rất quan trọng là không để kết quả bị tạm dừng quá lâu, nếu không bạn có thể gặp phải
    npm install express
    npm install mysql
    216 Giới hạn thời gian cho việc này được xác định bởi máy chủ MySQL của bạn

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

Kết quả đường ống với Luồng

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

npm install express
npm install mysql
217 bao bọc các sự kiện truy vấn vào một đối tượng. Luồng này có thể dễ dàng được chuyển xuống hạ lưu và cung cấp tạm dừng/tiếp tục tự động, dựa trên tắc nghẽn hạ lưu và tùy chọn
npm install express
npm install mysql
218. Tham số
npm install express
npm install mysql
219 của luồng được đặt thành
npm install express
npm install mysql
67 và không thể thay đổi (nếu bạn cần luồng byte, bạn sẽ cần sử dụng luồng biến đổi, như objstream chẳng hạn)

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

npm install express
npm install mysql
31

Truy vấn nhiều câu lệnh

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

npm install express
npm install mysql
32

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

npm install express
npm install mysql
33

thủ tục lưu trữ

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

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

Khi thực hiện phép nối, bạn có thể nhận được các tập hợp kết quả có tên cột trùng nhau

Theo mặc định, nút-mysql sẽ ghi đè lên các tên cột xung đột 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

npm install express
npm install mysql
34

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

npm install express
npm install mysql
35

giao dịch

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

npm install express
npm install mysql
36

hoặc kiểm tra một khách hàng từ nhóm

npm install express
npm install mysql
37

Xin lưu ý rằng beginTransaction(), commit() và rollback() chỉ đơn giản là các hàm tiện lợi thực thi các lệnh START TRANSACTION, CAMIT 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 một cam kết ngầm định, như được mô tả trong tài liệu MySQL

Hết giờ

Mọi hoạt động đều có 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ờ thích hợp cho các hoạt động. Điều quan trọng cần lưu ý là những thời gian chờ này không phải là một phần của giao thức MySQL và các hoạt động hết thời gian chờ thông qua máy khách. Điều này có nghĩa là khi hết thời gian chờ, kết nối xảy ra trên đó sẽ bị hủy và không thể thực hiện thêm thao tác nào nữa

npm install express
npm install mysql
38

xử lý lỗi

Mô-đun này đi kèm với 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 phiên bản 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

  • npm install express
    npm install mysql
    221. Chuỗi, chứa biểu tượng lỗi máy chủ MySQL nếu lỗi là lỗi máy chủ MySQL (e. g.
    npm install express
    npm install mysql
    222), một nút. js mã lỗi nếu đó là Nút. lỗi js (e. g.
    npm install express
    npm install mysql
    223) hoặc mã lỗi nội bộ (e. g.
    npm install express
    npm install mysql
    224)
  • npm install express
    npm install mysql
    225. Số, chứa số lỗi máy chủ MySQL. Chỉ được điền từ lỗi máy chủ MySQL
  • npm install express
    npm install mysql
    226. Boolean, cho biết liệu lỗi này có phải là thiết bị đầu cuối của đối tượng kết nối hay không. Nếu lỗi không phải do hoạt động của giao thức MySQL, thuộc tính này sẽ không được xác định
  • npm install express
    npm install mysql
    227. Chuỗi, chứa SQL đầy đủ 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 truy vấn
  • npm install express
    npm install mysql
    228. Chuỗi, chứa giá trị SQLSTATE gồm năm ký tự. Chỉ được điền từ lỗi máy chủ MySQL
  • npm install express
    npm install mysql
    229. Chuỗi, chứa chuỗi thông báo cung cấp mô tả bằng văn bản về lỗi. Chỉ được điền từ lỗi máy chủ MySQL

Lỗi nghiêm trọng được truyền đến tất cả các cuộc gọi lại đang chờ xử lý. Trong ví dụ bên dưới, một lỗi nghiêm trọng được kích hoạt khi 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ý

npm install express
npm install mysql
39

Ghi chú. Các sự kiện

npm install express
npm install mysql
230 đặc biệt trong nút. Nếu chúng xảy ra mà không có trình nghe đính kèm, dấu vết ngăn xếp sẽ được in và quy trình của bạn bị hủy

tl;dr. Mô-đun này không muốn bạn đối phó với những thất bại thầm lặng. Bạn phải 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 mình. Nếu bạn muốn bỏ qua lời khuyên này và loại bỏ các lỗi chưa được xử lý, bạn có thể làm điều này

npm install express
npm install mysql
50

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 gây ra lỗi mà bạn đang gặp phải khi 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
  • GẤP ĐÔI

Ngày tháng

  • DẤU THỜI GIAN
  • NGÀY THÁNG
  • NGÀY GIỜ

Đệm

  • TINYBLOB
  • VỪABLOB
  • LONGBLOB
  • BÃI
  • nhị phân
  • BIẾN THÂN
  • BIT (byte cuối cùng sẽ được lấp đầy bằng 0 bit nếu cần)

Chuỗi

Văn bản ghi chú trong bộ ký tự nhị phân được trả về dưới dạng

npm install express
npm install mysql
231, thay vì một chuỗi

  • CHAR
  • VARCHAR
  • TINYTEXT
  • TRUNG BÌNH
  • VĂN BẢN DÀI
  • CHỮ
  • ENUM
  • BỘ
  • DECIMAL (có thể vượt quá độ chính xác float)
  • BIGINT (có thể vượt quá độ chính xác nổi)
  • THỜI GIAN (có thể được ánh xạ tới Ngày, 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 nên (và có thể biến mất/thay đổi trong tương lai) để tắt tính năng truyền kiểu, nhưng hiện tại bạn có thể làm như vậy trên cả hai kết nối

npm install express
npm install mysql
51

Hoặc ở cấp độ truy vấn

npm install express
npm install mysql
52

đúc loại tùy chỉnh

Bạn cũng có thể truyền một hàm và tự xử lý việc truyền kiểu. Bạn được cung cấp một số thông tin cột như cơ sở dữ liệu, bảng và tên cũng như loại và độ dài. Nếu bạn chỉ muốn áp dụng kiểu truyền tùy chỉnh cho một loại cụ thể, bạn có thể thực hiện việc đó và sau đó chuyển về mặc định

Hàm được cung cấp hai đối số

npm install express
npm install mysql
232 và
npm install express
npm install mysql
233 và dự kiến ​​sẽ trả về giá trị cho trường đã cho bằng cách gọi các hàm trình phân tích cú pháp thông qua đối tượng
npm install express
npm install mysql
232

Đối số

npm install express
npm install mysql
232 là một đối tượng
npm install express
npm install mysql
236 và chứa dữ liệu về trường cần được phân tích cú pháp. Sau đây là một số thuộc tính trên đối tượng
npm install express
npm install mysql
236

  • npm install express
    npm install mysql
    238 - một chuỗi cơ sở dữ liệu mà trường đến từ đó
  • npm install express
    npm install mysql
    239 - một chuỗi của bảng mà trường đến từ đó
  • npm install express
    npm install mysql
    240 - một chuỗi tên trường
  • npm install express
    npm install mysql
    241 - một chuỗi của trường được viết hoa toàn bộ
  • npm install express
    npm install mysql
    242 - một số độ dài trường, như được cung cấp bởi cơ sở dữ liệu

Đối số

npm install express
npm install mysql
233 là một
npm install express
npm install mysql
244, khi được gọi, sẽ trả về chuyển đổi loại mặc định cho trường đã cho

Khi lấy dữ liệu trường, các phương thức trợ giúp sau đây có trên đối tượng

npm install express
npm install mysql
232

  • npm install express
    npm install mysql
    246 - phân tích trường thành một chuỗi
  • npm install express
    npm install mysql
    247 - phân tích trường thành một
    npm install express
    npm install mysql
    231
  • npm install express
    npm install mysql
    249 - phân tích cú pháp trường dưới dạng giá trị hình học

Giao thức MySQL là một giao thức dựa trên văn bản. Điều này có nghĩa là qua dây, tất cả các loại trường được biểu diễn dưới dạng một chuỗi, đó là lý do tại sao chỉ có các hàm giống như chuỗi trên đối tượng

npm install express
npm install mysql
232. Dựa trên thông tin loại (chẳng hạn như
npm install express
npm install mysql
251), kiểu truyền sẽ chuyển đổi trường chuỗi thành một loại JavaScript khác (chẳng hạn như
npm install express
npm install mysql
252)

Đây là một ví dụ về chuyển đổi

npm install express
npm install mysql
253 thành boolean

npm install express
npm install mysql
53

CẢNH BÁO. BẠN PHẢI GỌI trình phân tích cú pháp bằng cách sử dụng một trong ba hàm trường này trong lệnh gọi lại typeCast tùy chỉnh của bạn. Họ chỉ có thể được gọi một lần

Gỡ lỗi và báo cáo sự cố

Nếu bạn đang gặp sự cố, một điều có thể hữu ích là bật chế độ

npm install express
npm install mysql
12 cho kết nối

npm install express
npm install mysql
54

Điều này sẽ in tất cả các gói đến và đi trên thiết bị xuất chuẩn. Bạn cũng có thể hạn chế gỡ lỗi đối với các loại gói bằng cách chuyển một mảng các loại để gỡ lỗi

npm install express
npm install mysql
55

để hạn chế gỡ lỗi đối với truy vấn và gói dữ liệu

Nếu điều đó không có ích, vui lòng mở 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 sự cố (nếu có thể)
  • Càng 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 đê bảo mật

Các vấn đề bảo mật không nên được báo cáo trước thông qua GitHub hoặc một diễn đàn công cộng khác, nhưng được giữ ở chế độ riêng tư để các cộng tác viên đánh giá báo cáo và (a) đưa ra cách khắc phục 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à vấn đề bảo mật

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ở một vấn đề GitHub chỉ cần hỏi xem vấn đề bảo mật sẽ được giải quyết cho ai 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 chỉ dẫn rõ ràng về vấn đề bảo mật là gì và nó sẽ bị khai thác như thế nào, lý tưởng nhất là có bằng chứng về khái niệm ("PoC") đi kèm để các cộng tác viên chống lại và xác thực các bản sửa lỗi tiềm năng đối với

Làm cách nào để sử dụng MySQL2 trong nodejs?

Dưới đây là cách sử dụng MySQL trong Node theo năm bước đơn giản. .
Tạo một dự án mới. mkdir kiểm tra mysql && cd kiểm tra mysql
Tạo một gói. tập tin json. npm init -y
Cài đặt mô-đun mysql. npm cài đặt mysql
Tạo một ứng dụng. js và sao chép đoạn mã bên dưới (chỉnh sửa trình giữ chỗ cho phù hợp)
Chạy tập tin. ứng dụng nút

MySQL2 là gì?

Dự án MySQL2 là sự tiếp nối của MySQL-Native . Mã trình phân tích cú pháp giao thức đã được viết lại từ đầu và api đã thay đổi để phù hợp với mysqljs/mysql phổ biến. Nhóm MySQL2 đang làm việc cùng với nhóm mysqljs/mysql để tìm ra mã được chia sẻ và chuyển nó vào tổ chức mysqljs.

Làm cách nào để CHÈN nhiều hàng trong SQL Node js?

Câu lệnh INSERT cũng cho phép bạn chèn nhiều hàng vào một bảng bằng cách sử dụng một câu lệnh như sau. INSERT INTO table_name(column1,column2…) VALUES (value1,value2,…), (value1,value2,…), … Trong biểu mẫu này, bạn .

Làm cách nào để sử dụng lời hứa mysql trong nút js?

Để tạo một lời hứa, chúng tôi sử dụng từ khóa hàm tạo “mới” . Đối tượng lời hứa có hai tham số, một cho thành công và một cho thất bại. (giải quyết, bác bỏ). Nó trả về một giá trị với cuộc gọi lại giải quyết và một đối tượng lỗi với từ chối.