据我所知,根据非阻塞 I/O 理论,一切都应该在回调中。
所以我很困惑,例如 felixge/node-mysql
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
connection.end();
但我认为这是错误的例子,因为 .end() 可能发生在连接建立之前。
可以给我正确的连接、查询和结束 mysql 连接的例子吗
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
// As I understand every "query" should happen here
});
最佳答案
mysql
模块内部有一个在连接时处理的查询队列。一旦 .end()
被调用,连接只会在队列为空时结束。
此外,.connect()
是不必要的,因为在断开连接时调用 .query()
将隐式触发连接。
关于mysql - Node 和 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330799/