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实现的网页局布刷新效果
Dec 01 Javascript
js对象数组按属性快速排序
Jan 31 Javascript
利用javascript的面向对象的特性实现限制试用期
Aug 04 Javascript
浏览器页面区域大小的js获取方法
Sep 21 Javascript
js去空格技巧分别去字符串前后、左右空格
Oct 21 Javascript
通过jquery 获取URL参数并进行转码
Aug 18 Javascript
node.js中的fs.lchmod方法使用说明
Dec 16 Javascript
jQuery超赞的评分插件(8款)
Aug 20 Javascript
jQuery页面加载初始化的3种方法(推荐)
Jun 02 Javascript
node实现的爬虫功能示例
May 04 Javascript
使用JavaScript生成罗马字符的实例代码
Jun 08 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 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编实现程动态图像的创建代码
2008/09/28 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
php调用c接口无错版介绍
2014/03/11 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
修改发贴的编辑功能
2007/03/07 Javascript
可以文本显示的公告栏的js代码
2007/03/11 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
javascript如何实现create方法
2019/11/04 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
用Python创建声明性迷你语言的教程
2015/04/13 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
应届生英语教师求职信
2013/11/05 职场文书
关于环保的活动方案
2014/08/25 职场文书
学校个人对照检查材料
2014/08/26 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书