Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫(kù)的方法
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ù)客戶端連接包
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
配置環(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();
});
});
node oracle.js
- node.js 開(kāi)發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫(kù)操作
- Node.js數(shù)據(jù)庫(kù)操作之查詢MySQL數(shù)據(jù)庫(kù)(二)
- Node.js下向MySQL數(shù)據(jù)庫(kù)插入批量數(shù)據(jù)的方法
- Node.js操作mysql數(shù)據(jù)庫(kù)增刪改查
- Node.js數(shù)據(jù)庫(kù)操作之連接MySQL數(shù)據(jù)庫(kù)(一)
- node.js平臺(tái)下的mysql數(shù)據(jù)庫(kù)配置及連接
- 從零學(xué)習(xí)node.js之mysql數(shù)據(jù)庫(kù)的操作(五)
- Node.js實(shí)現(xiàn)連接mysql數(shù)據(jù)庫(kù)功能示例
- Node.js對(duì)MySQL數(shù)據(jù)庫(kù)的增刪改查實(shí)戰(zhàn)記錄
- node.js如何操作MySQL數(shù)據(jù)庫(kù)
- Node.js實(shí)現(xiàn)http請(qǐng)求服務(wù)與Mysql數(shù)據(jù)庫(kù)操作方法詳解
- node.js對(duì)于數(shù)據(jù)庫(kù)MySQL基本操作實(shí)例總結(jié)【增刪改查】
相關(guān)文章
nodejs基于express實(shí)現(xiàn)文件上傳的方法
這篇文章主要介紹了nodejs基于express實(shí)現(xiàn)文件上傳的方法,結(jié)合實(shí)例形式分析了nodejs基于express框架實(shí)現(xiàn)文件上傳功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-03-03
node如何實(shí)現(xiàn)cmd彈窗交互之inquirer
這篇文章主要介紹了node如何實(shí)現(xiàn)cmd彈窗交互之inquirer問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
node+axios實(shí)現(xiàn)服務(wù)端文件上傳示例
這篇文章主要介紹了node+axios實(shí)現(xiàn)服務(wù)端文件上傳示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Node.js中使用事件發(fā)射器模式實(shí)現(xiàn)事件綁定詳解
這篇文章主要介紹了Node.js中使用事件發(fā)射器模式實(shí)現(xiàn)事件綁定詳解,本文一并講解了回調(diào)模式、發(fā)射器模式、事件類(lèi)型等基礎(chǔ)知識(shí)做了補(bǔ)充,需要的朋友可以參考下2014-08-08
nodejs處理http請(qǐng)求實(shí)例詳解之get和post
最近一段時(shí)間在學(xué)習(xí)前端向服務(wù)器發(fā)送數(shù)據(jù)和請(qǐng)求數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于nodejs處理http請(qǐng)求實(shí)例詳解之get和post的相關(guān)資料,需要的朋友可以參考下2023-01-01
在Linux系統(tǒng)上升級(jí)Node.js遇到GLIBC依賴問(wèn)題的多種解決方案
在現(xiàn)代 Web 開(kāi)發(fā)和 DevOps 實(shí)踐中,Node.js 是一個(gè)不可或缺的工具,在升級(jí) Node.js 版本時(shí),尤其是在較舊的 Linux 系統(tǒng)上,可能會(huì)遇到一些依賴庫(kù)不兼容的問(wèn)題,特別是與 GLIBC 和 GLIBCXX 相關(guān)的錯(cuò)誤,本文將詳細(xì)介紹如何解決這個(gè)依賴問(wèn)題,需要的朋友可以參考下2025-01-01

