Linux下为Node.js程序配置MySQL或Oracle数据库的方法
mysql使用
安装mysql模块:
在安装根目录cmd命令行执行命令
npminstallmysql
安装成功后、
mysql数据库表已存在的情况下。
在nodejs根目录新建mysql.js:
varsys=require('util');
varmysql=require('mysql');
console.log('正在连接MySQL...');
varhttp=require("http");
varserver=http.createServer(function(request,response){
response.writeHead(200,{"Content-Type":"text/html;charset:utf-8"});
response.write("<!doctypehtml><html><metacharset='utf-8'/>");
varclient=mysql.createConnection({'host':'localhost','port':3306,'user':'testmysql','password':'123456'});
clientConnectionReady=function(client)
{
client.query('usetest',function(error,results){
if(error){
console.log('ClientConnectionReadyError:'+error.message);
client.end();
return;
}else{
response.write("nodejs服务器已经开始工作...<br/>");
response.write("已经连接上MySQL....<br/>");
}
clientReady(client);
});
};
clientReady=function(client){
varvalues=['不错啊'];
client.query('insertintonodemysqlsetnames=:1',values,
function(error,results){
if(error){
console.log("ClientReadyError:"+error.message);
client.end();
return;
}
console.log('Inserted:'+results.affectedRows+'row.');
console.log('Idinserted:'+results.insertId);
}
);
getData(client);
}
getData=function(client){
client.query(
'select*fromnodemysql',
functionselectCb(error,results,fields){
if(error){
console.log('GetDataError:'+error.message);
client.end();
return;
}
vardata='';
for(vari=0;i<results.length;i++){
varfirstResult=results[i];
data+='id:'+firstResult['id']+'name:'+firstResult['names']+"<br/>";
}
response.write(data);
response.write("关闭MySQL连接...");
response.write("</html>");
response.end();
}
);
client.end();
};
clientConnectionReady(client);
});
server.listen(8033,"127.0.0.1");
varsys=require("util");
sys.puts("Serverrunningathttp://localhost:8033/");
运行nodemysql.js 。
浏览器访问http://localhost:8033即可看到效果。
配置oracle支持
在oracle网站下载oracle数据库客户端连接包
instantclient-basic-linux,instantclient-sdk-linux
解压oracle客户端连接模块
$unzipinstantclient-basic-linux-11.2.0.3.0.zip $unzipinstantclient-sdk-linux-11.2.0.3.0.zip $sudomvinstantclient_11_2//opt/instantclient $cd/opt/instantclient $sudoln-slibocci.so.11.1libocci.so $sudoln-slibclntsh.so.11.1libclntsh.so
配置环境变量
$exportOCI_INCLUDE_DIR=/opt/instantclient/sdk/include/ $exportOCI_LIB_DIR=/opt/instantclient
进入nodejs目录 安装oracle模块支持
$cd/usr/local/lib $npminstalloracle exportLD_LIBRARY_PATH=/opt/instantclient
编写oracle.js文件测试连接于执行sql是否正常
varoracle=require("oracle");
oracle.connect({"hostname":"localhost","user":"demo","password":"demo","database":"orcl","port":1521},function(err,connection){
if(err){
console.log(err);
}
//selectingrows注意connection.execute方法必须要三个参数不然会出错
connection.execute("SELECT*FROMTESTWHEREID=:1",['1'],function(err1,results){
//resultswillbeanarrayofobjects
console.log("querystart");
if(err1){
console.log(err1);
}
//console.log(results.length);
for(vari=0;i<results.length;i++){
console.log(results[i].ID);
}
connection.close();
});
});
终端运行命令
nodeoracle.js