📢설치환경
NodeJS : 윈도우
MongoDB : Centos6.10 (6.9 다음버전임)
(필자는 데이터베이스를 별도의 서버로 개발을 합니다)
📋MONGO DB 설치 (CentOS 6)
▼ Mongo DB 설치
yum 으로 설치시 2.16 버전이 설치되고 RPM 설치시 4.0 버전으로 설치할수 있따.
yum install mongodb mongodb-server
rpm -ivh https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.0/x86_64/RPMS/mongodb-org-server-4.0.7-1.el6.x86_64.rpm
yum 명령어로 설치할경우 mongodb 2.16 으로 설치가된다. node와 버전이 맞지않으면 아래와 같은 에러가 날수있다.
reports wire version 0, but this version of Node.js Driver requires at least 2 (MongoDB2.6).
📋 설치로그 2019-03-28
▼ 위처럼 설치하면 server는 깔리는대 client가 안깔려서 리눅스에서 mongo 명령어가 안먹힌다. 공식문서를 본 결과의 설치방법.
1. vi 편집기로 아래 글 을 넣어준다.
$ vi /etc/yum.repos.d/mongodb-org-4.0.repo
//아래 글을 복사해서 넣어준다.
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
2. yum 으로 install 한다
yum install -y mongodb-org
▼ Mongo DB 설치 확인
[root]# service mongod status
mongod is stopped
[root@ ~]# mongod --version
[root@ ~]# mongo --version
>
db version v4.0.7
git version: 1b82c812a9c0bbf6dc79d5400de9ea99e6ffa025
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
distmod: rhel62
distarch: x86_64
target_arch: x86_64
▼ Mongo DB 서비스 시작
[root@zetawiki ~]# service mongod start //stop , restart
Starting mongod: [ OK ]
▼ Mongo DB 외부 접속 허용
아래 bind_ip 를 0.0.0.0 으로 바꿔주자
vi /etc/mongodb.conf
##
### Basic Defaults
##
bind_ip = 127.0.0.1 <<------ 이부분을 0.0.0.0 으로 바꿔주자
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/var/lib/mongodb
journal = true
.........................
📋 NODE JS -MongoDB 연결
▼ MongoDB 패키지 설치 (mongoose)
npm install mongoose
요약 : mongoose 는 ODM 이다. Spring 의 iBtis 같은놈
Mogoose는 Node.js와 MongoDB를 위한 ODM(Object Data Mapping) library이다. Java 기반의 Hibernate. iBatis 등의 ORM(Object Relational Mapping)과 유사한 개념이다.
ODM은 데이터베이스와 객체지향 프로그래밍 언어 사이 호환되지 않는 데이터를 변환하는 프로그래밍 기법입니다. 즉 MongoDB 에 있는 데이터를 여러분의 Application에서 JavaScript 객체로 사용 할 수 있도록 해줍니다.
ODM의 사용은 코드 구성이나 개발 편의성 측면에서 장점이 많다. 호환성이 없는 프로그래밍언어(JavaScript) Object와 MongoDB의 데이터를 Mapping하여 간편한 CRUD를 가능하게 한다.
필요에 따라 확장 및 변경이 가능한 자체 검증(Validation)과 타입 변환(Casting)이 가능하며 Express와 함께 사용하면 MVC Concept 구현이 용이하다.
▼ MongoDB 패키지 설치 (mongoose)
npm install dotenv
요약 : db.properties 같은 db환경설정 을 저장하고있는 파일
node.js 로 개발을 하면서, 포트, DB 관련 정보 등 전역으로 필요한 여러 정보들이 존재한다. node.js 에서는 dotenv를 통해 환경변수 파일을 외부에 만들고, 관리할 수 있다. 특히, 깃허브 등에 오픈소스로 프로젝트를 공개할때, DB 계정 정보를 소스코드 내에 하드코딩하지 않고, 외부 환경변수 파일에 작성하고, .gitignore 을 통해 제외하면 안전하다.
📋 MongoDB 연결 테스트
▼ 정상 연결시 Connected to DB 가 콘솔 출력 , 에러시 에러로그와 같이 에러출력. 아래 파일을 node로 실행시키면 된다.
const mongoose = require("mongoose");
mongoose.connect("mongodb://ip주소:port/we-tube",
{
useNewUrlParser:true,
useFindAndModify: false
});
const db = mongoose.connection;
const handleOpen = () => console.log("Connected to DB");
const handleError = error => console.log(`Error on DB Connection:${error}`);
db.once("open",handleOpen);
db.on("error",handleError);
📋 MongoDB 설치 경로
▼ 내용
mongodb의 설정파일은 /etc/mongod.conf 경로에 있고
init스크립트는 /etc/rc.d/init.d/mongod 에 있습니다.
데이터파일은 /var/lib/mongo 경로에 저장되고
로그파일은 /var/log/mongo 여기에.
📋 MongoDB PORT 사용중인지 확인
lsof -i :27017
📋 dotenv 설정
▼ dotenv 로 url 을 별도의 파일로 뺴낼수 있다. 스프링의 properties 와 비슷
test.js
lsof -i :27017
ABCDEFG.env
MONGO_URL = "mongodb://121.66.142.174:27017/we-tube"
'데이터베이스 > Mongo DB' 카테고리의 다른 글
MongoDB - 기본 명령어 (0) | 2022.01.07 |
---|