
코딩애플님의 Node.js, MongoDB로 2시간 만에 빠르게 웹서비스 만들기 강의를 듣고 복습의 목적으로 작성하였습니다
MongoDB

이전에 post로 보낸 데이터를 mongoDB에 저장해보겠습니다.
DB의 종류
- 관계형DB
- sql이라는언어를 사용해 데이터를 다룬다
- 쿼리를 만들어 사용
- 빠르고 효율적
- MySql, Oracle 등등
- NoSQL
- 객체 자료형으로 입출력 가능
- 데이터 입출력에만 신경씀
- Dynamo, MongoDB 등등
MongoDB 세팅
MongoDB Atlas: Cloud Document Database
Cloud-hosted MongoDB service on AWS, Azure, and GCP
www.mongodb.com

start free를 누르고 간단한 회원가입을 진행합니다
https://developer88.tistory.com/421
MongoDB Atlas 무료 로 사용하기
오늘은 MongoDB의 Atlas서비스를 무료로 사용하는 방법에 대해서 정리해 보겠습니다. 1. Cluster 만들기 가장 먼저 해야할 것은 Cluster를 만드는 것 입니다. 회원가입을 하였다면, 우측 상단에 New Project
developer88.tistory.com
환경설정에 관련된 내용은 다음 글을 참고해도 좋을것 같습니다

다음 connect을 눌러줍니다.

connect your application을 눌러줍니다
만약 해당 화면이 나오지 않는 경우 이전 단계인 setup connection security가 완료가 되지 않았기 때문입니다.
그런 경우 우측 security에서 create user을 진행해줘야합니다

다음 url은 따로 저장을 해야합니다 여기 나오는 password는 security에서 create user할때 설정한 비밀번호입니다
sever와 mongoDB연결
먼저 보안문제가 있을수 있기 때문에
.env파일을 생성했습니다
.env파일에 다음과 같이 작성했습니다. 여기서 ID,PW는 create user의 id와pw입니다.
MONGODB_USER_ID=ID
MONGODB_USER_PW=PW
https://leewang31.tistory.com/243
[env] js에서 env파일 undefined /오류 코드 : "MongoServerError: bad auth : Authentication failed."
⛔문제 다음과 같이 mongoDB에 파일을 보낼 js파일을 만들었습니다. //index.js중 일부 const MongoClient = require('mongodb').MongoClient; MongoClient.connect(`mongodb+srv://${process.env.MONGODB_USER_ID}:${process.env.MONGODB_USER_PW}
leewang31.tistory.com
해당 방식을 따라하면 오류가 발생 되어 오류 노트를 추가했습니다
//index.js
const express = require('express')
const app = express()
const port = 3001
const bodyParser= require('body-parser')
app.use(bodyParser.urlencoded({extended: true}))
app.get('/',(req,res)=>{
res.sendFile(__dirname+'/index.html');
})
app.get('/write',(req,res)=>{
res.sendFile(__dirname+'/write.html');
})
app.post('/add', function(req, res){
console.log(req.body);
res.send('전송완료')
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
여기에 mongoDb에 연결가능한 라이브러리를 가져오겠습니다
터미널에 다음을 입력합니다
npm install mongodb
이후 require을 적은 문장들 아래쪽에 다음 코드를 추가했습니다.
const MongoClient = require('mongodb').MongoClient;
connect를 사용하여 mongoDB와 연결하겠습니다.
그리고 원래 코드에 있었던 listen을 connect의 콜백함수 안으로 옮겼습니다.
MongoClient.connect(`mongodb+srv://${process.env.MONGODB_USER_ID}:${process.env.MONGODB_USER_PW}@cluster0.pso4lve.mongodb.net/?retryWrites=true&w=majority`, function (err, client) {
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
});
})
다시 코드를 재 실행 해보겠습니다.

문제없이 작동 되고 있음을 알수 있습니다.
//index.js
const express = require('express')
const app = express()
const port = 3001
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({extended: true}))
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect(`mongodb+srv://${process.env.MONGODB_USER_ID}:${process.env.MONGODB_USER_PW}@cluster0.pso4lve.mongodb.net/?retryWrites=true&w=majority`, function (err, client) {
if (err) {
return console.log(err)
}
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
});
})
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
})
app.get('/write', (req, res) => {
res.sendFile(__dirname + '/write.html');
})
app.post('/add', function (req, res) {
console.log(req.body);
res.send('전송완료')
});
'백엔드 > node' 카테고리의 다른 글
| [Node.js/MongoDB] MongoDB에 데이터 확인하기 (feat . EJS) (0) | 2022.12.15 |
|---|---|
| [Node.js/MongoDB] MongoDB에 데이터 저장하기 (0) | 2022.12.15 |
| [Node.js/MongoDB] Post 데이터 넘기기 (0) | 2022.12.14 |
| [Node.js/MongoDB] Html파일 전송하기 (0) | 2022.12.14 |
| [Node.js/MongoDB] nodemon (0) | 2022.12.14 |