Linux下为Node.js程序配置MySQL或Oracle数据库的方法

  作者:bea

mysql使用 安装mysql 模块: 在安装根目录 cmd命令行执行命令 npm install mysql 安装成功后、 mysql数据库表 已存在的情况下。 在nodejs根目录 新建mysql.js: var sys = require('util'); var mysql=require('mysql'); console.log('正在连接MySQL...'); var http = require("http"); var server=http.c
mysql使用 安装mysql 模块: 在安装根目录 cmd命令行执行命令 


npm install mysql


安装成功后、 mysql数据库表 已存在的情况下。 在nodejs根目录 新建mysql.js:


var sys = require('util');
var mysql=require('mysql');
console.log('正在连接MySQL...');
var http = require("http");
var server=http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/html;charset:utf-8"});
response.write("<!doctype html><html><meta charset='utf-8'/>");
var client = mysql.createConnection({'host':'localhost','port':3306,'user':'testmysql','password':'123456'});
clientConnectionReady = function(client)
{
client.query('use test', function(error, results) {
if(error) {
console.log('ClientConnectionReady Error: ' + error.message);
client.end();
return;
}else{
response.write("nodejs 服务器已经开始工作...<br/>");
response.write("已经连接上MySQL....<br/>");
}
clientReady(client);
});
};

clientReady = function(client) {
var values = ['不错啊'];
client.query('insert into nodemysql set names = :1', values,
function(error, results) {
if(error) {
console.log("ClientReady Error: " + error.message);
client.end();
return;
}
console.log('Inserted: ' + results.affectedRows + ' row.');
console.log('Id inserted: ' + results.insertId);
}
);
getData(client);
}

getData = function(client) {
client.query(
'select * from nodemysql',
function selectCb(error, results, fields) {
if (error) {
console.log('GetData Error: ' + error.message);
client.end();
return;
}
var data = '';
for(var i=0; i<results.length; i++){
var firstResult = 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");

var sys = require("util");
sys.puts("Server running at http://localhost:8033/");


 运行 node mysql.js  。  浏览器 访问 http://localhost:8033 即可看到效果。

配置oracle支持 在oracle网站下载oracle数据库客户端连接包   instantclient-basic-linux,instantclient-sdk-linux   解压oracle客户端连接模块   


$ unzip instantclient-basic-linux-11.2.0.3.0.zip
$ unzip instantclient-sdk-linux-11.2.0.3.0.zip
$ sudo mv instantclient_11_2/ /opt/instantclient

$ cd /opt/instantclient
$ sudo ln -s libocci.so.11.1 libocci.so
$ sudo ln -s libclntsh.so.11.1 libclntsh.so


配置环境变量  


$ export OCI_INCLUDE_DIR=/opt/instantclient/sdk/include/
$ export OCI_LIB_DIR=/opt/instantclient


进入nodejs目录  安装oracle模块支持  


$ cd /usr/local/lib

$ npm install oracle

export LD_LIBRARY_PATH=/opt/instantclient

编写oracle.js文件 测试连接于执行sql是否正常  



var oracle = require("oracle");

oracle.connect({ "hostname": "localhost", "user": "demo", "password": "demo", "database": "orcl", "port": 1521}, function(err, connection) {
if(err) {
console.log(err);
}
// selecting rows 注意 connection.execute 方法必须要三个参数 不然会出错
connection.execute("SELECT * FROM TEST WHERE ID = :1", ['1'], function(err1, results) {
// results will be an array of objects
console.log("query start");
if(err1) {
console.log(err1);
}
// console.log(results.length);
for(var i = 0; i < results.length; i++) {
console.log(results[i].ID);
}
connection.close();
});
});

 终端运行命令


node oracle.js




有用  |  无用

猜你喜欢