Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫(kù)的方法
來(lái)源:易賢網(wǎng) 閱讀:894 次 日期:2016-07-19 14:49:14
溫馨提示:易賢網(wǎng)小編為您整理了“Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫(kù)的方法”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫(kù)的方法,這里默認(rèn)已經(jīng)裝配好了Node環(huán)境然后我們利用npm包管理工具來(lái)進(jìn)行配置,需要的朋友可以參考下

mysql使用

安裝mysql 模塊:

在安裝根目錄 cmd命令行執(zhí)行命令 

npm install mysql

安裝成功后、

mysql數(shù)據(jù)庫(kù)表 已存在的情況下。

在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 服務(wù)器已經(jīng)開(kāi)始工作...<br/>"); 

        response.write("已經(jīng)連接上MySQL....<br/>"); 

    } 

      clientReady(client); 

    }); 

  }; 

  clientReady = function(client) { 

    var values = ['不錯(cuò)啊']; 

    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("關(guān)閉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/");  

 運(yùn)行 node mysql.js  。

 瀏覽器 訪問(wèn) http://localhost:8033 即可看到效果。

配置oracle支持

在oracle網(wǎng)站下載oracle數(shù)據(jù)庫(kù)客戶(hù)端連接包  

instantclient-basic-linux,instantclient-sdk-linux  

解壓oracle客戶(hù)端連接模塊   

$ 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 

配置環(huán)境變量  

$ export OCI_INCLUDE_DIR=/opt/instantclient/sdk/include/

$ export OCI_LIB_DIR=/opt/instantclient

進(jìn)入nodejs目錄  安裝oracle模塊支持  

$ cd /usr/local/lib

$ npm install oracle 

export LD_LIBRARY_PATH=/opt/instantclient

編寫(xiě)oracle.js文件 測(cè)試連接于執(zhí)行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 方法必須要三個(gè)參數(shù) 不然會(huì)出錯(cuò) 

 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(); 

 }); 

}); 

終端運(yùn)行命令

node oracle.js

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
咨詢(xún)QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)