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 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
javascript 页面只自动刷新一次
Jul 10 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
jquery放大镜效果超漂亮噢
Nov 15 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 Javascript
浅谈JavaScript函数的四种存在形态
Jun 08 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
Sep 22 Javascript
Node之简单的前后端交互(实例讲解)
Nov 14 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
Feb 08 Javascript
vue完成项目后,打包成静态文件的方法
Sep 03 Javascript
element UI upload组件上传附件格式限制方法
Sep 04 Javascript
JavaScript 判断浏览器是否是IE
Feb 19 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
学习PHP session的传递方式
2016/06/15 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
Python中实现的RC4算法
2015/02/14 Python
python中xrange用法分析
2015/04/15 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
python pygame实现方向键控制小球
2019/05/17 Python
python修改文件内容的3种方法详解
2019/11/15 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
英国足球店:UK Soccer Shop
2017/11/19 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
食品安全承诺书
2014/05/22 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
个人查摆剖析材料
2014/10/16 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
市场营销计划书范文
2015/01/16 职场文书
总经理聘用协议书
2015/09/21 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书