Tôi đang cố gắng tìm ra cách cấu trúc ứng dụng của mình để sử dụng MySQL theo cách hiệu quả nhất. Tôi đang sử dụng module-mysql module. chủ đề khác ở đây đề nghị sử dụng kết nối tổng hợp vì vậy tôi thiết lập một chút mô-đun mysql.jsnode.js + kết nối mysql pooling
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'root',
database : 'guess'
});
exports.pool = pool;
Bây giờ bất cứ khi nào tôi muốn truy vấn mysql tôi yêu cầu mô-đun này và sau đó truy vấn databse
var mysql = require('../db/mysql').pool;
var test = function(req, res) {
mysql.getConnection(function(err, conn){
conn.query("select * from users", function(err, rows) {
res.json(rows);
})
})
}
Đây có phải là cách tiếp cận tốt? Tôi thực sự không thể tìm thấy quá nhiều ví dụ về việc sử dụng các kết nối mysql bên cạnh một kết nối đơn giản, nơi mọi thứ được thực hiện trong kịch bản app.js chính vì vậy tôi không thực sự biết quy ước/thực tiễn tốt nhất là gì.
Tôi có nên luôn sử dụng connection.end() sau mỗi truy vấn không? Nếu tôi quên nó ở đâu thì sao?
Làm thế nào để viết lại phần xuất khẩu của mô-đun mysql của tôi để chỉ trả về kết nối vì vậy tôi không phải viết getConnection() mỗi lần?
Chỉ cần một người đứng đầu lên. Đó là 'connection.release();' bây giờ, cho các hồ bơi. – sdanzig
Đúng vậy.Tôi đã thay đổi nó. – Klaasvaak
Ngoài ra, nếu tôi có thể, tôi sẽ đề nghị sử dụng một lời hứa thay vì gọi lại, nhưng đó chỉ là một sở thích ... giải pháp tuyệt vời Tuy nhiên – Spock