해결된 질문
23.03.19 18:58 작성
·
717
0
postman에서 post요청 후 get으로 확인했을 때 잘 받아와집니다.
MongoDB Compass에 localhost:27017로 연결해서 refresh해도 mydocker DB가 조회가 안됩니다.
docker - mongodb가 연결이 잘 안된건지 어렵습니다.. 어떻게 확인할 수 있을까요?
import express from 'express'
import { checkValidationPhone, getToken, sendTokenToSMS } from './phone.js';
import swaggerUi from 'swagger-ui-express'
import swaggerJSDoc from 'swagger-jsdoc'
import { options } from './swagger/config.js'
import cors from 'cors'
import { checkValidationEmail, getWelcomeTemplate, sendWelcomeTemplateToEmail } from './email.js';
import mongoose from 'mongoose'
import { Board } from './models/board.model.js'
const app = express()
app.use(cors())
app.use(express.json());
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerJSDoc(options)));
app.get('/boards', async (req, res) => {
// const result = [
// {
// number: 1,
// writer: '철수',
// title: '제목입니다~~~',
// contents: '내용이에요@@@',
// },
// {
// number: 2,
// writer: '영희',
// title: '영희 제목입니다~~~',
// contents: '영희 내용이에요@@@',
// },
// {
// number: 3,
// writer: '훈이',
// title: '훈이 제목입니다~~~',
// contents: '훈이 내용이에요@@@'
// },
// ];
const result = await Board.find() //DB접속해서 가져오는 내용 위랑동일
res.send(result)
})
app.post('/boards', async (req, res) => {
console.log(req.body);
// 1. 데이터를 등록하는 로직 => DB에 접속해서 데이터 저장하기
const board = new Board({
writer: req.body.writer,
title: req.body.title,
contents: req.body.contents,
});
await board.save(); //원래는 SQL문법을 써야하지만 mongoose가 자동으로 변환해줌.(ORM, ODM)
// 2. 저장 결과 응답 주기
res.send("게시물 등록에 성공하였습니다.");
});
app.post('/tokens/phone', (req, res) => {
const myphone = req.body.myphone;
const isValid = checkValidationPhone(myphone);
if (isValid) {
const mytoken = getToken();
sendTokenToSMS(myphone, mytoken);
res.send('인증완료!!!');
}
});
app.post("/users", (req, res) => {
const user = req.body.myuser
const isValid = checkValidationEmail(user.email)
if(isValid){
const mytemplate = getWelcomeTemplate(user)
sendWelcomeTemplateToEmail(user.email, mytemplate)
res.send("가입완료!")
}
})
//몽고DB 접속
mongoose.connect("mongodb://my-database:27017/mydocker")
// localhost로 접속하게되면 express 도커안에서의 localhost이기때문에 dockercompose로 묶인 my-database-1 컴퓨터로 들어가야함.
// 단, dockercompose로 묶어뒀기 때문에 이름만 입력해서 진입가능(네임리졸루션).
// Backend API 서버 오픈
app.listen(3000, () => console.log(`exemple app listening on port ${3000}`))