英文原文来源于npm上mysql安装包的说明,鉴于网上对express如何mysql的资料不够详尽和全面。本人在浏览了上述英文资料后,感觉写得非常全面,所以萌生了把它翻译成中文的想法。
先占坑,有时间慢慢翻译。
安装mysql包
npm install mysql
Sometimes I may also ask you to install the latest version from Github to check if a bugfix is working. In this case, please do:
npm install mysqljs/mysql
简介
这是mysql在nodejs上的驱动,用JavaScript语言编写。它不需要编译,并且上100%遵守MIT协议的。
下面是如何使用mysql包的例子
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
connection.end();
从这个例子中,你可以得到如下结论:
- 每次你调用一个connection连接都需要加入队列并且按照顺序依次执行
- 通过使用
end()
来关闭connection,这能确保所有剩余的查询都能执行,before sending a quit packet to the mysql server.
建立连接
推荐用下面的方法来建立连接
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'example.org',
user : 'bob',
password : 'secret'
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
除了上面的方法之外,你也可以通过执行查询语句来间接建立连接,如下所示。
var mysql = require('mysql');
var connection = mysql.createConnection(...);
connection.query('SELECT 1', function (error, results, fields) {
if (error) throw error;
// connected!
});
Depending on how you like to handle your errors, either method may be appropriate. Any type of connection error (handshake or network) is considered a fatal error, see the Error Handling section for more information.