Computer

[Node.js] Node.js에 oracleDB 연동하기

가시가시 2020. 3. 1. 01:02

 Node.js는 mysql이나 noSQL종류를 지원하고 있는 것으로 알고있습니다. 하지만 node.js에 최근 사용하고 있는 oracleDB를 연동하고 싶은 마음에 어떻게 해야하는지 검색해보았습니다.

 

 자세한 내용은 

 

https://github.com/oracle/node-oracledb/blob/master/INSTALL.md#instwin 

 

의 7번 windows버전을 참고하면 됩니다. 그래도 친구가 설치하는데 꽤나 애먹었던 것이 생각나 적어둡니다.

 

1. 설치 구성요소

 

 - VS2015 (C/C++ 빌드 환경이면 어떤 것이던 상관 없다고 되어있습니다만, node 6 이후의 것이면 vs 2015 를 사용하라고 나와있습니다.)

 

https://docs.oracle.com/database/121/NXCQI/toc.htm#NXCQI108

 

  여기에 들어가면 어떤 컴파일러가 지원되는지 적혀있습니다. 이를 시스템 환경 변수에 경로를 추가해줍니다.

  컴퓨터 오른쪽 마우스 클릭 - 속성 - 고급 시스템 설정 - 고급 - 환경변수 - 시스템 변수 - Path 에 추가해주면 됩니다.

 

- Python 2.7

  커스터마이즈 옵션에서 "Add python.exe to Path" 를 선택하시면 됩니다. 만약에 여기서 저 옵션을 선택 안했을 경우, 직접 시스템 환경 변수 설정에 들어가 Path에 Python이 저장되어있는 경로를 추가해주면 됩니다.

- node.js 및 oracle 

  굳이 적지 않겠습니다 :D

 

2. 설치하기

 

 - 먼저 VS2015용 개발자 명령 프롬포트를 열어줍니다. ( 굳이 이걸 안써도 되는 것 같긴 합니다만)

 

컴퓨터 폴더 내에서 오라클 설치 위치를 찾은 뒤, lib 와 include 폴더를 찾아줍니다.

저의 경우에는, C:\app\user\virtual\product\12.2.0\dbhome_1\oci 여기에 모두 들어있었습니다.

후에 명령 프롬포트에 다음과 같이 작성해줍니다.

 

set OCI_LIB_DIR=C:\oracle\product\12.1.0\dbhome_1\oci\lib\msvc
set OCI_INC_DIR=C:\oracle\product\12.1.0\dbhome_1\oci\include

 

여기서 C:\oracle\product\12.1.0\dbhome_1\oci 는 각자 자신의 오라클 폴더로 지정해주면 됩니다.

 * path 에 자신의 오라클 폴더(C:\app\user\virtual\product\12.2.0\dbhome_1)\bin 이 저장되어 있어야 합니다.

 

이후 자신의 node.js를 활용한 폴더에 npm install oracledb를 활용하여 

 

npm install oracledb

 

다음과 같이 설치해준 뒤, 사용하면 됩니다.

간단한 사용법은 다음과 같습니다. 홈페이지에서 example program 을 다운로드 할 경우 dbconfig.js라는 파일이 있을 것입니다. 이 파일을 자신의 oracle 계정에 따라 수정해주면 됩니다.

 

// dbconfig.js


module.exports = {
user : process.env.NODE_ORACLEDB_USER || "계정아이디",

// Instead of hard coding the password, consider prompting for it,
// passing it in an environment variable via process.env, or using
// External Authentication.
password : process.env.NODE_ORACLEDB_PASSWORD || "비밀번호",

// For information on connection strings see:
// https://github.com/oracle/node-oracledb/blob/master/doc/api.md#connectionstrings
connectString : process.env.NODE_ORACLEDB_CONNECTIONSTRING || "호스트이름/자신의 sid",


// Setting externalAuth is optional. It defaults to false. See:
// https://github.com/oracle/node-oracledb/blob/master/doc/api.md#extauth
externalAuth : process.env.NODE_ORACLEDB_EXTERNALAUTH ? true : false
};

 

다음과 같이 수정한 뒤, db를 사용하고 싶은 부분에서

var oracledb = require('oracledb');
var dbConfig = require('./dbconfig.js');


로 불러와 사용해주면 됩니다. 자세한 예제는 홈페이지의 예제문에 나와있으니 생략하겠습니다 :)

약간 복잡하기는 하지만 한번 연결하고 나면 사용은 그렇게 어렵지 않으니 모두 즐거운 코딩 되세요 :D!

 

----

2017. 5. 10. 01:17 에 썼던 글 '0'

코드 블럭이 잘 안먹는데 고쳐야 할 것 같다!