단순 코드 기록/Node

Node_DB연결

일일일코_장민기 2024. 3. 25. 12:19
728x90
dbconfig.js
module.exports={
    user: "",
    password: "",
    xid: "localhost:1521/xe",
    externalAuth: false,
}

 

main.js
const express = require("express");
const app = express();

//서버 listen
const server = app.listen(3003, ()=>{
    console.log("Start Server: loocalhost: 3003");
});

//__dirname: 현재 디렉토리
//page 경로 설정
app.set("views", __dirname + "/views");
app.set("view engine", "ejs");
app.engine("html", require("ejs").renderFile);

//views의 index.html 불러오기
app.get("/", function(req, res){
    res.render("index.html");
})

////////////////////////////////////////////////////////////////////////////////////////


//0. 오라클용 DB설치:   npm install oracledb

//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");  
        //const result = (await connection).execute("select * from dept where deptno=:num", [10]);     //deptno 10번 출력

        console.log(result);
        res.send((await result).rows);              //2차원 배열의 배뇽
    } catch (error) {
        console.log(error);
    } finally {
        if(connection){
            try {
                (await connection).close;
            } catch(error){
                console.log("error: ", error);
            }
        }
    }
}