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 Migrate 1.1.0 Released 注意事项
Jun 14 Javascript
JavaScript学习笔记之定时器
Jan 22 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
May 10 Javascript
动态更新highcharts数据的实现方法
May 28 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
angularjs使用directive实现分页组件的示例
Feb 07 Javascript
react native仿微信PopupWindow效果的实例代码
Aug 07 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
实例讲解JS中pop使用方法
Jan 27 Javascript
了解javascript中变量及函数的提升
May 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中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python操作使用MySQL数据库的实例代码
2017/05/25 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
python并发和异步编程实例
2018/11/15 Python
Python箱型图处理离群点的例子
2019/12/09 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
2021/01/29 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
LINUX下线程,GDI类的解释
2012/04/17 面试题
体育学院毕业生自荐信
2013/11/03 职场文书
写好自荐信要注意的问题
2013/11/10 职场文书
市政管理求职信范文
2014/05/07 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
mysql 排序失效
2022/05/20 MySQL