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 相关文章推荐
MSN消息提示类
Sep 05 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
Dec 19 Javascript
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
jquery分页对象使用示例
Apr 01 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
jQuery实现鼠标滑过点击事件音效试听
Aug 31 Javascript
11种ASP连接数据库的方法
Sep 18 Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 Javascript
vue.js+Echarts开发图表放大缩小功能实例
Jun 09 Javascript
vue使用video.js进行视频播放功能
Jul 18 Javascript
JS实现滑动拼图验证功能完整示例
Mar 29 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 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动态生成虚拟现实VRML网页
2006/10/09 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
Django rest framework实现分页的示例
2018/05/24 Python
基于python历史天气采集的分析
2019/02/14 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
年会主持词结束语
2014/03/27 职场文书
个人贷款担保书
2014/04/01 职场文书
个人授权委托书范本
2014/04/03 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
创业计划书之酒厂
2019/10/14 职场文书
学习nginx基础知识
2021/09/04 Servers