相比与java,nodejs的mysql连接方式较为简单,但需要注意其异步特性
1. 导入mysql模块
建立mysql连接时,需要用到mysql模块,一个简单的require即可完成操作
var mysql = require('mysql');
2. 配置mysql的连接参数
在java的数据库连接工具JDBC中,数据库的连接参数以一个url的形式给出.
在nodejs的mysql模块中,需要调用该模块的方法createConnection(),该方法的参数为JSON格式,该JSON通过规定好的各个参数来自写入数据库的连接数据
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
database : 'ttms',
charset : 'utf8'
});
3.连接并使用数据库
如上代码,连接参数配置之后,将创建一个connection对象,使用该对象的connect()方法来进行数据库的连接
connection.connect();
连接之后便可以使用query()函数,来执行数据库的语句,一个简单的查询示例如下:
var mysql = require('mysql');
var dbFunc = {
fetchById : function(id,callback){
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
database : 'ttms',
charset : 'utf8'
});
connection.connect();
var sql = "select * from studio where studio_id = " +id;
connection.query(sql,function(err,result){
if(err)
throw err;
callback(result);
});
}
}
module.exports = dbFunc;
4. 需要注意,不同于java语言,nodejs的mysql操作是异步的
如上代码中,我在传入查询的id的同时,还传入了一个callback函数,用来做出数据查询完成后的操作,这是由nodejs的mysql模块的异步特性决定的,传入这样一个回调函数,让只有当数据的查询操作完成后,才会执行后续的处理操作,如下为一个简单的调用操作(function.js为上面的查询操作的文件名):
var dbFunc = require('./function.js');
var callback = function(result){
console.log("search result :");
console.log(result);
}
dbFunc.fetchById(2,callback);