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 相关文章推荐
Js nodeType 属性全面解析
Nov 14 Javascript
Javascript的&amp;&amp;和||的另类用法
Jul 23 Javascript
了不起的node.js读书笔记之mongodb数据库交互
Dec 22 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
Aug 06 Javascript
高性能JavaScript 重排与重绘(2)
Aug 11 Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 Javascript
javascript 中Cookie读、写与删除操作
Mar 29 Javascript
vue写一个组件
Apr 09 Javascript
Vue表单类的父子组件数据传递示例
May 03 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
微信小程序拖拽排序列表的示例代码
Jul 08 Javascript
vue判断按钮是否可以点击
Apr 09 Vue.js
分享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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
jquery分页优化操作实例分析
2019/08/23 jQuery
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
Python中的zip函数使用示例
2015/01/29 Python
Python之修改图片像素值的方法
2019/07/03 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
Python中Selenium库使用教程详解
2020/07/23 Python
python实现简单遗传算法
2020/09/18 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
学生保证书范文
2014/04/28 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
Python创建SQL数据库流程逐步讲解
2022/09/23 Python