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 相关文章推荐
你所要知道JS(DHTML)中的一些技巧
Jan 09 Javascript
Span元素的width属性无效果原因及解决方案
Jan 15 Javascript
jQuery中$.fn的用法示例介绍
Nov 05 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
Aug 18 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
Sep 27 Javascript
jquery无缝图片轮播组件封装
Nov 25 jQuery
小程序简单两栏瀑布流效果的实现
Dec 18 Javascript
node.js中module模块的功能理解与用法实例分析
Feb 14 Javascript
Element Backtop回到顶部的具体使用
Jul 27 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 Curl多线程原理实例详解
2013/11/06 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
python服务器与android客户端socket通信实例
2014/11/12 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
python使用matplotlib绘制热图
2018/11/07 Python
python中import与from方法总结(推荐)
2019/03/21 Python
Pyqt5实现英文学习词典
2019/06/24 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
python exit出错原因整理
2020/08/31 Python
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
精彩的广告词
2014/03/19 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书