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 mysql0
npm install express npm install mysql1
npm install express npm install mysql2
npm install express npm install mysql3
npm install express npm install mysql4
npm install express npm install mysql5
npm install express npm install mysql2
npm install express npm install mysql7
npm install express npm install mysql8
npm install express npm install mysql5
npm install express npm install mysql2____21____22
npm install express npm install mysql5
npm install express npm install mysql2
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 mysql2____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 mysql2____229____320
npm install express npm install mysql21
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 mysql2____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 mysql002 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 mysql2
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 mysql3
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 mysql001. 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 mysql5
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ạngnpm 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ướcnpm 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ụngnpm 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ởinpm install express npm install mysql
020]. Cờ này được điều khiển bởi tùy chọn kết nốinpm install express npm install mysql
19. [Mặc định tắt]npm install express npm install mysql
022npm 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ốinpm 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ốinpm 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 mysql57
npm install express npm install mysql6
Đ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 mysql036 đế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 mysql036 có thể được gửi, một đối số
npm install express npm install mysql038 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 mysql039. Đ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 mysql039 đả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 mysql2
Không giống như
npm install express npm install mysql57, phương pháp
npm install express npm install mysql039 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 mysql043. Đọ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 mysql6
truy vấn duy nhất
npm install express npm install mysql7
kiểm tra một khách hàng
npm install express npm install mysql1
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 mysql044 để 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ớinpm 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ếunpm 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ếunpm 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ànhnpm 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 mysql058 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 mysql00
sự liên quan
Nhóm sẽ phát ra sự kiện
npm install express npm install mysql059 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 mysql059
npm install express npm install mysql01
hàng đợi
Nhóm sẽ phát ra một sự kiện
npm install express npm install mysql061 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 mysql02
giải phóng
Nhóm sẽ phát ra sự kiện
npm install express npm install mysql062 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 mysql03
Đó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 mysql063 trên nhóm
npm install express npm install mysql04
Phương thức
npm install express npm install mysql063 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 mysql065 được gọi,
npm install express npm install mysql066 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 mysql065
Cuộc gọi
npm install express npm install mysql065
npm install express npm install mysql069 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 mysql070 trên kết nối và đặt cờ để ngăn
npm install express npm install mysql066 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 mysql05
hồ bơi. truy vấn là như nhau
npm install express npm install mysql06
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 mysql072,
npm install express npm install mysql073 hoặc
npm install express npm install mysql074
mysql. thoát khỏi
npm install express npm install mysql07
sự liên quan. thoát khỏi
npm install express npm install mysql08
hồ bơi. thoát khỏi
npm install express npm install mysql09
Ngoài ra, bạn có thể sử dụng các ký tự
npm install express npm install mysql075 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 mysql20
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 mysql076 bằng với
npm install express npm install mysql077,
npm install express npm install mysql078 bằng với
npm install express npm install mysql079,
npm install express npm install mysql080 bằng với
npm install express npm install mysql081 và
npm install express npm install mysql082 sẽ là
npm install express npm install mysql083
npm install express npm install mysql21
Đ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 mysql073 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 mysql075 đề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ànhnpm 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 mysql22
Và phương pháp
npm install express npm install mysql094 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 mysql23
Để tạo các đối tượng bằng phương thức
npm install express npm install mysql094, có thể sử dụng phương thức
npm install express npm install mysql204. Đ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 mysql075, 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 mysql204 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 mysql24
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 mysql25
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 mysql207 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 mysql26
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 mysql27
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 mysql69 để 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 mysql28
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 mysql29
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 mysql30
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ệnnpm install express npm install mysql
212 nào kích hoạt sau khi gọinpm 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 mysql217 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 mysql218. Tham số
npm install express npm install mysql219 của luồng được đặt thành
npm install express npm install mysql67 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 mysql31
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 mysql32
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 mysql33
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 mysql34
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 mysql35
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 mysql36
hoặc kiểm tra một khách hàng từ nhóm
npm install express npm install mysql37
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 mysql38
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ủ MySQLnpm 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 địnhnpm 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ấnnpm 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ủ MySQLnpm 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 mysql39
Ghi chú. Các sự kiện
npm install express npm install mysql230 đặ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 mysql50
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 mysql231, 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 mysql51
Hoặc ở cấp độ truy vấn
npm install express npm install mysql52
đú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 mysql232 và
npm install express npm install mysql233 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 mysql232
Đối số
npm install express npm install mysql232 là một đối tượng
npm install express npm install mysql236 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 mysql236
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ườngnpm 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 mysql233 là một
npm install express npm install mysql244, 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 mysql232
npm install express npm install mysql
246 - phân tích trường thành một chuỗinpm install express npm install mysql
247 - phân tích trường thành mộtnpm install express npm install mysql
231npm 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 mysql232. Dựa trên thông tin loại [chẳng hạn như
npm install express npm install mysql251], 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 mysql252]
Đây là một ví dụ về chuyển đổi
npm install express npm install mysql253 thành boolean
npm install express npm install mysql53
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 mysql12 cho kết nối
npm install express npm install mysql54
Đ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 mysql55
để 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