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.blockUI.js上传滚动等待效果实现思路及代码
Mar 18 Javascript
js网页版计算器的简单实现
Jul 02 Javascript
JS实现鼠标单击与双击事件共存
Mar 08 Javascript
原生js实现数字字母混合验证码的简单实例
Dec 10 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
再谈Javascript中的异步以及如何异步
Aug 19 Javascript
jQuery实现元素的插入
Feb 27 Javascript
JS控件bootstrap datepicker使用方法详解
Mar 25 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
Oct 26 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
Jun 22 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实现的通用图片处理类
2015/03/24 PHP
php微信开发之百度天气预报
2016/11/18 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
深入理解Python中的super()方法
2017/11/20 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
医学专业毕业生个人的求职信
2013/12/04 职场文书
社区交通安全实施方案
2014/03/22 职场文书
蓝颜请假条
2014/04/11 职场文书
公司外出活动方案
2014/08/14 职场文书
2014市国税局对照检查材料思想汇报
2014/09/23 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
大学生学期个人总结
2015/02/12 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
预备党员表决心的话
2015/09/22 职场文书
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
关于使用Redisson订阅数问题
2022/01/18 Redis
python基础之//、/与%的区别详解
2022/06/10 Python