inflearn logo
강의

Course

Instructor

Express Tutorial: Core APIs for Web Services

mongoDB 어플리케이션 연결이 안됩니다...

326

dhsm81013824

1 asked

0

```

const express = require("express");
const MongoClient = require("mongodb").MongoClient;
const app = express();

const port = 5000;
const MongoURL =
  "mongodb+srv://username:비밀번호@cluster0.elhcowk.mongodb.net/express?retryWrites=true&w=majority";
var db, post;

app.use(express.static("public"));
app.use(express.urlencoded({ extended: false }));
app.set("view engine", "ejs");
//app.set("view engine", "pug");

app.get("/", (req, res) => {
  post.insertOne({
    제목: "test",
    내용: "test",
    날짜: new Date(),
  });
  res.render("index");
});

app.post("/calculator", (req, res) => {
  let result = Number(req.body.num1) + Number(req.body.num2);
  res.render("result", { result: result });
});
app.all("*", (req, res) => {
  res.status(404).send("찾을 수 없는 페이지입니다!");
});

MongoClient.connect(MongoURL, (err, database) => {
  if (err) {
    console.log(err);
    return;
  } else {
    app.listen(port, () => {
      console.log(`접속 완료됫어요 ${port}`);
    });
    db = database.db("express");
    post = db.collection("posts");
  }
});

 

```

강의 해주신대로 위 코드를 입력하고 nodemon을 실행하였음에도..
[nodemon] starting node index.js 라는 문구만 나올뿐.. db연동이 안됩니다 ㅠㅠ
혹시 제 코드에 문제가 있나요..?

url 부분에 username과 비밀번호는 제 몽고디비 아이디 비밀번호 입력했습니다..

혹시 코드부분에서 잘못된 점이 있나요..?

express

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴이에요.
에러 메시지를 확인해보니 MongoClient가 deprecated 되어서 connect를 사용 중인데, 아마 이에 따른 오류가 발생한 것으로 보입니다. MongoClient의 대체 기능으로 mongoose를 사용해보시는 것을 추천해드립니다.

mongoose를 사용하면 코드를 간단하게 수정할 수 있습니다. 아래는 mongoose를 이용하여 데이터베이스 연결하는 코드입니다.

const express = require("express");
const mongoose = require("mongoose");
const app = express();

const port = 5000;
const MongoURL =
  "mongodb+srv://username:비밀번호@cluster0.elhcowk.mongodb.net/express?retryWrites=true&w=majority";

onst postSchema = new mongoose.Schema({
  제목: String,
  내용: String,
  날짜: Date,
});

const Post = mongoose.model("Post", postSchema);

app.use(express.static("public"));
app.use(express.urlencoded({ extended: false }));
app.set("view engine", "ejs");

app.get("/", (req, res) => {

  const post = new Post({
    제목: "test",
    내용: "test",
    날짜: new Date(),
  });

  post.save(function (err, post) {
    if (err) return console.error(err);
    console.log(post);
  });

  res.render("index");
});

app.post("/calculator", (req, res) => {
  let result = Number(req.body.num1) + Number(req.body.num2);
  res.render("result", { result: result });
});

app.all("*", (req, res) => {
  res.status(404).send("찾을 수 없는 페이지입니다!");
});

mongoose.connect(MongoURL, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

const db = mongoose.connection;

db.on("error", (error) => console.error(error));
db.once("open", () => {
  app.listen(port, () => {
    console.log(`접속 완료됬어요 ${port}`);
  });
});

mongoose는 스키마(schema)와 모델(model)을 정의해주어야 합니다. 스키마는 데이터의 구조를 정의해주고, 모델은 스키마를 바탕으로 만든 데이터의 인터페이스입니다. 코드 내용을 약간 수정한 것으로, 그외 자세한 내용은 mongoose 공식문서를 참고하시길 바랍니다.

map API

0

36

1

nodejs 터미널 인식

0

39

1

미들웨어 체인 구현 보다가 생긴 궁금증에 대해 질문 드려요!

0

103

2

학습 방향성

0

75

1

넥스트 버젼 질문

0

78

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

[해결]그랩님 답변 주세요.

0

161

2

그랩님의 답변을 기다립니다/102강 전반적인 에러

0

141

2

프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~

2

80

1

[그랩님께]101강 안드로이드 에러들(Key prop)해결방법 궁금합니다.

0

123

2

깃헙 질문

0

79

2

강의 1-1 수업노트의 로드맵 링크가 작동하지 않습니다.

0

74

1

[재질문][그랩님 답변 부탁드립니다]101강

0

140

2

[그랩님 답변 부탁드립니다]101강 Axios 에러와 502 Bad Gateway 질문

0

97

2

Ngrok 설치 후 forwarding Url 에러

0

133

2

[그랩님께,Ngrok 악성코드 인식 해결방법]질문 드립니다.

0

217

2

Ngrok 설치 후 forwarding Url로 연결 불가

0

135

1

aws - lightsail 이용 관련

0

56

1

강의자료는 어디서 다운받나요?

0

110

3

안녕하세요 선생님 도와주세요

0

142

1

(3강 1강의) mongoDB 연결 및 데이터베이스 생성이 안 돼요

0

110

1

myLogger 미들웨어가 작동하지 않는 경로가 있습니다.

0

394

1

npm 에러

1

324

2

5:30초때 app.post 부분 에러가 나요

1

418

1