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学习笔记(十二) RegExp类型介绍
Jun 20 Javascript
jquery 动态创建元素的方式介绍及应用
Apr 21 Javascript
js控制页面控件隐藏显示的两种方法介绍
Oct 09 Javascript
jquery ajax,ashx,json的用法总结
Feb 12 Javascript
实例详解JavaScript获取链接参数的方法
Jan 01 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 Javascript
JS实现页面载入时随机显示图片效果
Sep 07 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
Sep 27 Javascript
vue2实现数据请求显示loading图
Nov 28 Javascript
JavaScript Canvas编写炫彩的网页时钟
Oct 16 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
JavaScript自定义超时API代码实例
Apr 30 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
正则表达式语法
2006/10/09 Javascript
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
Python是什么 Python的用处
2020/05/26 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
python如何设置静态变量
2020/09/07 Python
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
应届毕业生自我鉴定范文
2013/12/27 职场文书
试用期员工考核制度
2014/01/22 职场文书
希特勒的演讲稿
2014/05/23 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
Java设计模式中的命令模式
2022/04/28 Java/Android