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


Posted in Javascript onMarch 19, 2016

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
Javascript 相关文章推荐
Javascript学习笔记5 类和对象
Jan 11 Javascript
浅析javascript闭包 实例分析
Dec 25 Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 Javascript
浅谈javascript面向对象程序设计
Jan 21 Javascript
比较常见的javascript中定义函数的区别
Nov 09 Javascript
JavaScript简单实现弹出拖拽窗口(一)
Jun 17 Javascript
微信小程序 开发经验整理
Feb 15 Javascript
妙用Angularjs实现表格按指定列排序
Jun 23 Javascript
微信小程序学习笔记之本地数据缓存功能详解
Mar 29 Javascript
Vue项目打包部署到iis服务器的配置方法
Oct 14 Javascript
vue ajax 拦截原理与实现方法示例
Nov 29 Javascript
Taro小程序自定义顶部导航栏功能的实现
Dec 17 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
Aug 21 #Javascript
JQuery用户名校验的具体实现
Mar 18 #Javascript
基于javascript实现页面加载loading效果
Sep 15 #Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 #Javascript
javascript移动开发中touch触摸事件详解
Mar 18 #Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
Mar 18 #Javascript
基于jQuery实现收缩展开功能
Mar 18 #Javascript
You might like
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
更优雅的事件触发兼容
2011/10/24 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
js自定义回调函数
2015/12/13 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python可迭代对象去重实例
2020/05/15 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
艺术爱好者的自我评价分享
2013/10/08 职场文书
个人自荐书
2013/12/20 职场文书
会计职业生涯规划书
2014/01/13 职场文书
小学生植树节活动总结
2014/07/04 职场文书
《活见鬼》教学反思
2016/02/24 职场文书