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系列(15) 函数(Functions)
Apr 12 Javascript
仿微博字符限制效果实现代码
Apr 20 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
使用Node.js处理前端代码文件的编码问题
Feb 16 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
Jun 20 Javascript
input 禁止输入特殊字符的四种实现方式
Aug 24 Javascript
angular 用拦截器统一处理http请求和响应的方法
Jun 08 Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 Javascript
Vue.js的动态组件模板的实现
Nov 26 Javascript
vue在路由中验证token是否存在的简单实现
Nov 11 Javascript
微信小程序如何获取地址
Dec 24 Javascript
node实现mock-plugin中间件的方法
Dec 25 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
解析thinkphp基本配置 convention.php
2013/06/18 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
Firefox和IE兼容性问题及解决方法总结
2013/10/08 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
JavaScript 异步调用
2017/10/25 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
python中学习K-Means和图片压缩
2017/11/20 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
python书籍信息爬虫实例
2018/03/19 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
python如何判断IP地址合法性
2020/04/05 Python
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
法国在线药房:DoctiPharma
2020/10/21 全球购物
傲盾软件面试题
2015/08/17 面试题
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
保洁主管岗位职责
2013/11/20 职场文书
教师业务学习制度
2014/01/25 职场文书
优质服务口号
2014/06/11 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
起诉状范本
2015/05/20 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
JS 基本概念详细介绍
2021/10/16 Javascript