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实现获取服务器时间
May 19 Javascript
jQuery点击输入框显示验证码图片
May 19 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
JS实现的找零张数最小问题示例
Nov 28 Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 Javascript
详解如何构建一个Angular6的第三方npm包
Sep 07 Javascript
小程序兼容安卓和IOS数据处理问题及坑
Sep 18 Javascript
three.js实现炫酷的全景3D重力感应
Dec 30 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
Apr 20 Javascript
JavaScript字符和ASCII实现互相转换
Jun 03 Javascript
vue webpack build资源相对路径的问题及解决方法
Jun 04 Javascript
vue解决跨域问题(推荐)
Nov 10 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 版获取重定向后的地址(代码)
2013/06/26 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
PHP7新增函数
2021/03/09 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
python语言中with as的用法使用详解
2018/02/23 Python
简单了解python PEP的一些知识
2019/07/13 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
基于python实现模拟数据结构模型
2020/06/12 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
J2EE中常用的名词进行解释
2015/11/09 面试题
优秀教师获奖感言
2014/01/31 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
房屋买卖协议样本
2014/11/16 职场文书
行政诉讼答辩状
2015/05/21 职场文书
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL
利用Python多线程实现图片下载器
2022/03/25 Python
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android