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 相关文章推荐
jQuery实现类似滑动门切换效果的层切换
Sep 23 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 Javascript
基于jQuery制作小图标上下滑动特效
Jan 18 Javascript
Angular模板表单校验方法详解
Aug 11 Javascript
JS实现简易换图时钟功能分析
Jan 04 Javascript
JS实现模糊查询带下拉匹配效果
Jun 21 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
javascript实现简单打字游戏
Oct 29 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
Dec 17 Javascript
js将URL网址转为16进制加密与解密函数
Mar 04 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
Jun 11 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
ExtJS 入门
2010/10/29 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
Python 的 with 语句详解
2014/06/13 Python
python实现查询IP地址所在地
2015/03/29 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python__name__原理及用法详解
2019/11/02 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
介绍下static、final、abstract区别
2015/01/30 面试题
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
教你打造完美的创业计划书
2014/01/06 职场文书
班组安全员工作职责
2014/02/01 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
2015年林业工作总结
2015/05/14 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL