【发布时间】:2018-05-23 07:58:59
【问题描述】:
目前我正在使用 Node.js 中的 MySQL 库,但是我对使用该库的正确/最有效方式有疑问。
根据 w3schools 的说法,进行单个查询的正确方法是使用这样的代码
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
con.query("SELECT * FROM customers", function (err, result, fields) {
if (err) throw err;
console.log(result);
});
});
但是,假设我想进行多个查询,这些查询将由一个事件执行,例如我将如何处理这个问题?我应该创建一个“初始化”函数,在程序运行后立即执行吗?
var mysql = require('mysql');
var database;
//Initialise database
function setupDatabase() {
database = mysql.createConnection({
host: token.host,
user: token.user,
password: token.password,
database: token.database,
port: token.port
});
}
//Imagine this could be called at any time after execution
function event() {
if(database != null) {
database.connect(function(err) {
if (err) throw err;
database.query("SELECT * FROM customers", function (err, result, fields) {
if (err) throw err;
console.log(result);
});
});
}
}
我是否必须在每次查询时都连接到数据库,或者我可以将“database.connect”调用添加到我的 setupDatabase 函数中吗?
var mysql = require('mysql');
var database;
//Initialise database
function setupDatabase() {
database = mysql.createConnection({
host: token.host,
user: token.user,
password: token.password,
database: token.database,
port: token.port
});
if(database != null) {
database.connect(function(err) {
if (err) throw err;
});
}
}
//Imagine this could be called at any time after execution
function event() {
if(database != null) {
database.query("SELECT * FROM customers", function (err, result, fields) {
if (err) throw err;
console.log(result);
});
}
}
我主要担心的是每次进行查询时调用 con.connect 函数会很慢,尽管这些是异步的,但我希望尽可能使用正确/最有效的方式。请随时纠正我对最后两个代码 sn-ps 的任何错误我到目前为止只测试了第一个。
【问题讨论】:
标签: javascript mysql node.js