* 개발환경 - 윈도우, VS Code
1. mongoDB Cluster 구축
MongoDB Atlas: Cloud Document Database
Cloud-hosted MongoDB service on AWS, Azure, and GCP
www.mongodb.com
위 사이트 들어가서 로그인. 난 구글 아이디로 함.
무료 버전인 'shared' 선택 -> 구글 클라우드, 서울 선택 -> Create Cluster 클릭
Network Access -> Add IP Address 클릭
ALLOW ACCESS FROM ANYWHERE 선택 후 Confirm 클릭
접속할 때 사용할 Username과 Password 설정
Database -> Connected -> Connect your application 선택
링크 복사 버튼 눌러서 코드 복사
2. mongoDB 설치
3. server.js 에 다음 코드 입력
let db;
const db_url = 'mongodb+srv://minji:<password>@cluster0.7aje40r.mongodb.net/?retryWrites=true&w=majority';
MongoClient.connect(db_url, (error, client)=>{
if (error) {
return console.log(error);
}
else {
global.db = client.db('node'); // node: 저장소 이름
app.listen(8080, ()=>{
console.log('server on');
})
}
})
db_url 의 주소는 복사해둔 코드를 ' ' 안에 넣으면 되고 <password> 부분에는 아까 설정한 비밀번호로 바꾸면 됨.
(<>안에 넣는게 아니라 <>까지 다 지우고 비번 입력해야됨)
그리고 다음과 같이 수정. 이렇게 변할 수 있는 부분만 따로 빼서 관리하면 코드 공유할 때나 다음 프로젝트 만들 때 더 편함
const db_id = ''; // id 입력
const db_pw = ''; // pw 입력
const db_cluster = 'cluster0';
const db_url = 'mongodb+srv://' + db_id + ':' + db_pw + '@' + db_cluster + '.7aje40r.mongodb.net/?retryWrites=true&w=majority';
let db;
MongoClient.connect(db_url, (error, client)=>{
if (error) {
return console.log(error);
}
else {
app.listen(8080, ()=>{
global.db = client.db('node'); // node: 저장소 이름
console.log('server on');
})
}
})
4. dotenv 설치
5. server.js에 dotenv 사용 선언
require('dotenv').config();
6. 프로젝트에 .env 파일 생성 후 아래 코드 작성
DB_ID = "" // id 입력
DB_PW = "" // pw 입력
DB_CLUSTER = "cluster0"
SERVER_PORT = 8080
7. server.js 코드 수정
const db_id = process.env.DB_ID;
const db_pw = process.env.DB_PW;
const db_cluster = process.env.DB_CLUSTER;
const server_port = process.env.SERVER_PORT;
const db_url = 'mongodb+srv://' + db_id + ':' + db_pw + '@' + db_cluster + '.7aje40r.mongodb.net/?retryWrites=true&w=majority';
let db;
MongoClient.connect(db_url, (error, client)=>{
if (error) {
return console.log(error);
}
else {
app.listen(server_port, ()=>{
global.db = client.db('node'); // node: 저장소 이름
console.log('server on');
})
}
})
8. cmd에서 서버 실행
근데 에러뜸
8080 포트가 다른 서버에서 사용중이라고 함. 8080 포트를 사용하는 프로세스를 찾아서 종료해야 함.
cmd에 netstat 명령어로 찾는 방법이 있는데 8080 포트를 사용하는 프로세스는 없었음..
이게 문제였음. 아까 삭제했어야 했는데 포트 연결을 한 번 더 실행하니 에러뜬거였음. 어쩐지 에러뜨기 전엔 server on이 두번 뜨더라.
다시 실행해보니 정상적으로 server on이 뜸. DB연결에 성공
'Node.js' 카테고리의 다른 글
[Node.js] http 모듈로 서버 구축하기(1) - http 모듈, fs 모듈 (0) | 2024.03.04 |
---|---|
node.js와 mongoDB로 웹 만들기 (5) 아이디 중복체크(ajax) (0) | 2023.01.17 |
node.js와 mongoDB로 웹 만들기 (3) 로그인, 회원가입 (0) | 2023.01.12 |
node.js와 mongoDB로 웹 만들기 (2) 서버 구축 및 실행 (0) | 2023.01.11 |
node.js와 mongoDB로 웹 만들기 (1) node.js, npm 설치 (0) | 2023.01.10 |