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 相关文章推荐
拖动一个HTML元素
Dec 22 Javascript
flexigrid 参数说明
Nov 23 Javascript
Javascript玩转继承(二)
May 08 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
实践中学习AngularJS表单
Mar 21 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
js解决软键盘遮挡输入框的问题分享
Dec 19 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
浅析JavaScript异步代码优化
Mar 18 Javascript
vue中axios实现数据交互与跨域问题
May 12 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
WordPress分页伪静态加html后缀
2016/06/08 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
JavaScript中的prototype和constructor简明总结
2014/04/05 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
Angular4编程之表单响应功能示例
2017/12/13 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
详解JavaScript的变量
2019/04/04 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
python练习程序批量修改文件名
2014/01/16 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
公积金单位接收函
2014/01/11 职场文书
加拿大探亲邀请信
2014/01/28 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
业务员岗位职责
2015/02/03 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android