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脚本实现Web页面信息交互
Oct 11 Javascript
Javascript 设计模式(二) 闭包
May 26 Javascript
JQUERY1.6 使用方法四 检测浏览器
Nov 23 Javascript
jQuery判断对象是否存在的方法
Feb 05 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
javascript实现确定和取消提示框效果
Jul 10 Javascript
浅谈javascript中onbeforeunload与onunload事件
Dec 10 Javascript
JS获取复选框的值,并传递到后台的实现方法
May 30 Javascript
浅析JavaScript函数的调用模式
Aug 10 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
JavaScript实现动态留言板
Mar 16 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
Discuz! Passport 通行证整合
2008/03/27 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
python 编写简单网页服务器的实例
2018/06/01 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
利用python生成照片墙的示例代码
2020/04/09 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
决心书范文
2014/03/11 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
2014年科研工作总结
2014/12/03 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
倡议书格式及范文
2015/04/29 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python