728x90
const express = require("express");
const app = express();
//서버 listen
const server = app.listen(3004, ()=>{
console.log("Start Server: loocalhost: 3004");
});
//__dirname: 현재 디렉토리
//page 경로 설정
app.set("views", __dirname + "/views");
app.set("view engine", "ejs");
app.engine("html", require("ejs").renderFile);
app.get("/", function(req, res){
res.render("index2.html"); //index2.html
})
//1. database
const oracledb = require("oracledb");
oracledb.initOracleClient();
const dbconfig = require("./dbconfig.js");
//2. 브라우저에서 불러오기
app.get("/select", function(req, res){
getSelection(req, res);
})
//3. 브라우저에서 불러오기 위한 코드
async function getSelection(req, res){
let connection;
try {
connection = oracledb.getConnection({
user: dbconfig.user, //DB 아이디
password: dbconfig.password, //DB 비밀번호
connectString: dbconfig.xid, //localhost: 1521/xe
})
const result = (await connection).execute("select * from dept", //콜백 함수
function(error, data){
if(error){
console.log(error);
}
var cCols = "";
var cRows = "";
for(let i = 0; i < data.metaData.length; i++) { //컬럼 찍기
cCols += data.metaData[i].name;
cCols += "\t\t"
}
for(let i = 0; i < data.rows.length; i++) { //데이터 찍기
var ddata = data.rows[i];
for (let j = 0; j < ddata.length; j++) {
cRows += ddata[j]+"\t\t";
}
cRows += "\n";
}
console.log(cCols);
console.log("===============================================")
console.log(cRows);
res.send(data.rows); //화면에 출력
//res.send(data.metaData[0].name); //출력되지 않음 (Cannot set headers after they are sent to the client)
});
} catch (error) {
console.log(error);
} finally {
if(connection){
try {
(await connection).close;
} catch(error){
console.log("error: ", error);
}
}
}
}
console.log("실행 후: ", data);에서 출력
==>>
metaData: [
{
name: 'DEPTNO',
dbType: [DbType DB_TYPE_NUMBER],
nullable: false,
isJson: false,
isOson: false,
precision: 2,
scale: 0,
dbTypeName: 'NUMBER',
fetchType: [DbType DB_TYPE_NUMBER]
},
{
name: 'DNAME',
dbType: [DbType DB_TYPE_VARCHAR],
nullable: true,
isJson: false,
isOson: false,
byteSize: 14,
dbTypeName: 'VARCHAR2',
fetchType: [DbType DB_TYPE_VARCHAR]
},
{
name: 'LOC',
dbType: [DbType DB_TYPE_VARCHAR],
nullable: true,
isJson: false,
isOson: false,
byteSize: 13,
dbTypeName: 'VARCHAR2',
fetchType: [DbType DB_TYPE_VARCHAR]
}
],
rows: [
[ 10, 'ACCOUNTING', 'NEW YORK' ],
[ 20, 'RESEARCH', 'DALLAS' ],
[ 30, 'SALES', 'CHICAGO' ],
[ 40, 'OPERATIONS', 'BOSTON' ],
[ 50, 'qweqwe', 'qweqwe' ]
]
console.log("data.rows: ", data.rows);에서 출력
==>>
data.rows: [ [ 10, 'ACCOUNTING', 'NEW YORK' ], [ 20, 'RESEARCH', 'DALLAS' ], [ 30, 'SALES', 'CHICAGO' ], [ 40, 'OPERATIONS', 'BOSTON' ], [ 50, 'qweqwe', 'qweqwe' ] ]
console.log(cCols);
console.log(cRows); 에서 출력
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 qweqwe qweqwe
'단순 코드 기록 > Node' 카테고리의 다른 글
Node_99번 부서 중복insert/update/delete/Table (0) | 2024.03.25 |
---|---|
Node_10번 부서 출력 + insert (0) | 2024.03.25 |
Node_DB연결 (0) | 2024.03.25 |
Node_서버 가동 및 html파일 연결 (0) | 2024.03.25 |
Node_00_설치 (0) | 2024.03.05 |