使用nodejs开发前后端分离式接口+数据库访问

一、数据库连接

1.nodejs数据库连接

var mysql = require(\'mysql\'); //导入数据库模块

var connection = mysql.createConnection({

host : \'192.168.xx.xx\',//数据库地址,本地数据库可使用localhost或者127.0.0.1

user : \'root\', //数据库账户名

password : \'root\', //数据库密码

database : \'test\' }); //数据库名称

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); });//数据库执行语句,增删改查都是用query();

2.实际使用中 query很容易出现访问异常,建议使用数据池

var mysql = require(\'mysql\'),
env = {
host : \'192.168.xx.xx\',
user : \'root\',
password : \'root\',
database : \'test\'
};
pool  = mysql.createPool(env);
query = function (sql, callback){
this.getConnection(function (err, connection){
connection.query(sql, function (){
callback.apply(connection, arguments);
connection.release();
});
})
}.bind(pool);
pool.query(\'SELECT 1 + 1 AS solution\', function (error, results, fields) { if (error) throw error; console.log(\'The solution is: \', results[0].solution); });
二、接口开发
我开发的接口为get请求,参数直接通过url传递
app.get(\'/test\',function(req,res){
var params = url.parse(req.url, true).query;
var \"\'+params.id+\'\"\';
var sql=\'SELECT COUNT(*) FROM test WHERE +id;
pool.query(sql, function(err, rows, fields) {
if (err) throw err;
res.jsonp(rows);
res.end();
});
});
接口请求方式:
var ajax = new XMLHttpRequest();
var d = new Date();
var date = d.getDate();
ajax.open(\'get\',\'http://192.168.xx.xx:端口号/test?+id);
ajax.send();
ajax.onreadystatechange = function () {
if (ajax.readyState==4 &&ajax.status==200) {
var messages=ajax.responseText;
}
};