[Node.js] Node.js에 oracleDB 연동하기
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'
코드 블럭이 잘 안먹는데 고쳐야 할 것 같다!