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;}];}];
Lưu trữ nút của bạn. Dữ liệu cấu hình của ứng dụng JS khá đơn giản - mọi đối tượng trong JavaScript có thể dễ dàng được hiển thị dưới dạng JSON, do đó chỉ là dữ liệu chuỗi có thể được gửi hoặc lưu theo bất kỳ cách nào bạn muốn. Cách đơn giản nhất để làm điều này liên quan đến json.parse [] và json tích hợp.
Node JS xử lý kết nối MySQL như thế nào?
Thí dụ
Trả lại số lượng hàng bị ảnh hưởng:
Console.log [result.affedRows]
Sẽ tạo ra kết quả này:
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
}];
Nhận ID chèn
if [err] throw err;
console.log["Connected!"];
var sql = "INSERT INTO customers [name, address] VALUES ['Company Inc', 'Highway 37']";
con.query[sql, function [err, result] {
if [err] throw err;
console.log["1 record inserted"];
}];
}];
Đối với các bảng có trường ID tăng tự động, bạn có thể nhận ID của hàng bạn vừa chèn bằng cách hỏi đối tượng kết quả.
Lưu ý: Để có thể nhận ID được chèn, chỉ có thể chèn một hàng.
Chèn một bản ghi vào bảng "Khách hàng" và trả về ID:
var mysql = yêu cầu ['mysql'];
Điều này sẽ cung cấp cho bạn kết quả này:
var con = mysql.createConnection [{& nbsp; host: "localhost", & nbsp; user: "yourusername", & nbsp; mật khẩu: "yourPassword", & nbsp; cơ sở dữ liệu: "mydb"}];
1 record inserted
con.connect [function [err] {& nbsp; if [err] ném err; & nbsp; var sql = "chèn vào khách hàng [tên, địa chỉ] giá trị ['Michelle', 'Blue Village 1']"; & nbsp; con. Truy vấn [sql, function [err, result] {& nbsp; & nbsp; & nbsp; if [err] ném err; & nbsp; & nbsp; }];}];
Chạy ví dụ »
INSERT INTO customers [name, address] VALUES ?
Thí dụ
Trả lại số lượng hàng bị ảnh hưởng:
Console.log [result.affedRows]
Sẽ tạo ra kết quả này:
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
}];
Nhận ID chèn
if [err] throw err;
console.log["Connected!"];
var sql = "INSERT INTO customers [name, address] VALUES ?";
var values = [
['John', 'Highway 71'],
['Peter', 'Lowstreet 4'],
['Amy', 'Apple st 652'],
['Hannah', 'Mountain 21'],
['Michael', 'Valley 345'],
['Sandy', 'Ocean blvd 2'],
['Betty', 'Green Grass 1'],
['Richard', 'Sky st 331'],
['Susan', 'One way 98'],
['Vicky', 'Yellow Garden 2'],
['Ben', 'Park Lane 38'],
['William',
'Central st 954'],
['Chuck', 'Main Road 989'],
['Viola', 'Sideway 1633']
];
con.query[sql, [values], function [err, result] {
if [err] throw err;
console.log["Number of records inserted: " + result.affectedRows];
}];
}];
Chạy ví dụ »
Lưu mã ở trên trong một tệp có tên là "demo_db_insert_multple.js" và chạy tệp:
Chạy "demo_db_insert_multiple.js"
C: \ Users \ Your Name> Node demo_db_insert_multiple.js
Điều này sẽ cung cấp cho bạn kết quả này:
Đã kết nối! Số lượng bản ghi được chèn: 14
Number of records inserted: 14
Đối tượng kết quả
Khi thực hiện truy vấn, một đối tượng kết quả được trả về.
Đối tượng kết quả chứa thông tin về cách truy vấn ảnh hưởng đến bảng.
Đối tượng kết quả được trả về từ ví dụ trên có vẻ như sau:
{& nbsp; FieldCount: 0, & nbsp; Bị ảnh hưởng: 14, & nbsp; Chèn: 0, & nbsp; ServerStatus: 2, & nbsp; Cảnh báo: 0, & nbsp; Tin nhắn: '\' Bản ghi: 14 & nbsp; Trùng lặp: 0 & nbsp; Cảnh báo: 0 ', & nbsp; Giao thức41: Đúng, & NBSP; Đã thay đổi: 0}
fieldCount: 0,
affectedRows: 14,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '\'Records:14 Duplicated: 0 Warnings: 0',
protocol41: true,
changedRows: 0
}
Các giá trị của các thuộc tính có thể được hiển thị như thế này:
Thí dụ
Trả lại số lượng hàng bị ảnh hưởng:
Console.log [result.affedRows]
Sẽ tạo ra kết quả này:
Nhận ID chèn
Đối với các bảng có trường ID tăng tự động, bạn có thể nhận ID của hàng bạn vừa chèn bằng cách hỏi đối tượng kết quả.
Lưu ý: Để có thể nhận ID được chèn, chỉ có thể chèn một hàng. To be able to get the inserted id, only one row can be inserted.
Thí dụ
Trả lại số lượng hàng bị ảnh hưởng:
Console.log [result.affedRows]
Sẽ tạo ra kết quả này:
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
}];
Nhận ID chèn
if [err] throw err;
var sql = "INSERT INTO customers [name, address] VALUES ['Michelle', 'Blue Village 1']";
con.query[sql, function [err, result] {
if [err] throw err;
console.log["1 record inserted, ID: " +
result.insertId];
}];
}];
Đối với các bảng có trường ID tăng tự động, bạn có thể nhận ID của hàng bạn vừa chèn bằng cách hỏi đối tượng kết quả.
Lưu ý: Để có thể nhận ID được chèn, chỉ có thể chèn một hàng.
Chèn một bản ghi vào bảng "Khách hàng" và trả về ID:
var mysql = yêu cầu ['mysql'];
var con = mysql.createConnection [{& nbsp; host: "localhost", & nbsp; user: "yourusername", & nbsp; mật khẩu: "yourPassword", & nbsp; cơ sở dữ liệu: "mydb"}];
con.connect [function [err] {& nbsp; if [err] ném err; & nbsp; var sql = "chèn vào khách hàng [tên, địa chỉ] giá trị ['Michelle', 'Blue Village 1']"; & nbsp; con. Truy vấn [sql, function [err, result] {& nbsp; & nbsp; & nbsp; if [err] ném err; & nbsp; & nbsp; }];}];