if (err) {
console.log('发生错误');
}
sql.queryRaw(conn_str, "select * from users", function (err, results) {
if (err) {
console.log(err);
}
else {
for (var i = 0; i < results.rows.length; i++) {
console.log(results.rows[i][0] + results.rows[i][1]);
}
}
})
})
Nodejs连接sqlserver数据层封装
前面简单介绍了nodejs连接sqlserver,接下来介绍将所有数据库操作封装起来,方便项目调用的方法。
思路:所有配置参数写入xml文件,数据库操作封装起来,外部只暴露增删改查方法,方法参数只需要sql语句。
1.nodejs读取xml文件
nodejs解析xml文件需要模块libxmljs,安装:
nmp install libxmljsconfig.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<mydb driver="SQL Server Native Client 11.0" server="XXX" database="XXX" user="XXX" pwd="XXX">
<table name="FelixTest" />
</mydb>
</root>建立operateXML.js:
/*
Author:
Felix.X.Zhang
Date:
2014-6-19
Introduction:
this module provides you with the operations (read) of xml file.
*/
//Async Method
/*
var libxmljs=require('libxmljs');
var fs=require('fs');
var path='./config.xml';
var param=new params();
fs.readFile(path, 'utf8', function(err, data) {
if (err) throw err;
var xmlDoc = libxmljs.parseXmlString(data);
// xpath queries
var mydb = xmlDoc.get('//mydb');
var table=xmlDoc.get('//mydb//table');
param.mydb_server=mydb.attr('server').value();
param.mydb_database=mydb.attr('database').value();
param.mydb_user=mydb.attr('user').value();
param.mydb_pwd=mydb.attr('pwd').value();
param.table_name=table.attr('name').value();
});
*/
function params(){
this.mydb_driver="";
this.mydb_server="";
this.mydb_database="";
this.mydb_user="";
this.mydb_pwd="";
this.table_name="";
}
function getParamObj(){
var libxmljs=require('libxmljs');
var fs=require('fs');
var path='./config1.xml';
var param=new params();
var data;
try{
data= fs.readFileSync(path, 'utf8');
}
catch(err){
throw err;
}
var xmlDoc = libxmljs.parseXmlString(data);
var mydb = xmlDoc.get('//mydb');
var table=xmlDoc.get('//mydb//table');
param.mydb_driver=mydb.attr('driver').value();
param.mydb_server=mydb.attr('server').value();
param.mydb_database=mydb.attr('database').value();
param.mydb_user=mydb.attr('user').value();









