inflearn logo
강의

Course

Instructor

[Code Camp] Highly concentrated backend course created at boot camp

[ODM-MongoDB접속] post요청 후 몽고DB에서 조회가 안됩니다.

Resolved

815

yuslz354261

9 asked

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}`))

javascript node.js express docker tdd rest-api nestjs

Answer 1

0

otter

안녕하세요 치카치카님!

업로드 해주신 질문의 내용을 확인해 보았을 때, 가장 먼저 의심되는 부분은 local 즉, 치카치카님 pc 자체에 설치된 MongoDB와 Docker 내부에서 띄워진 MongoDB의 포트 번호 충돌입니다.

따라서 27017 포트를 사용하는 local의 MongoDB가 정상적으로 종료된 상태인지 확인해 보시길 바랍니다!

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

84

2

강의 전체 소스 코드를 받고싶습니다.

0

76

2

fontawesome 사용 문의

0

79

2

소스 코드 부탁드립니다~

0

85

2

깃 레포지터리 소스

0

87

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

74

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

89

3

강의 버전관련 문의입니다

0

103

2

Ubuntu 설치 관련

0

61

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

102

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

131

2

강의 전체 소스코드 받을수있을까요?

0

156

1

도커볼륨 마운트 관련

0

127

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

354

1

self-signed certificate in certificate chain 에러 발생

0

418

1

mongoose 설치 오류

0

142

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

283

2

08-06

0

180

3

구조랑 패턴 관련해서 질문

0

125

2

mydocker

0

128

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1