Node.js

21.04.22 mongoDB 연결 및 postman 사용 연습

슈팅스타제제 2021. 4. 25. 19:58

📌index.js

-세팅 파트

//필요한 모듈
const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const app = express();
const port = 5000;

//몽고디비 연결 호스트 설정
const config = require("./config/key");
//
const { User } = require("./models/User");

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

//몽고 디비 연결
mongoose
  .connect(config.mongoURI, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  //성공 시
  .then(() => console.log("MongoDB connected..."))
  //실패 시
  .catch((err) => console.log(err));

-첫화면 렌더링 및 회원가입 부분

app.get("/", (req, res) => {
  res.send("Hello World");
});

app.post("/register", (req, res) => {
  //client에서 입력받은 정보를 req를 통해 User 객체를 다시 변수에 넣어주고 
  const user = new User(req.body);

    //user 데이터베이스에 넣어준다.
  user.save((err, userInfo) => {
    if (err) return res.json({ success: false, err });
    return res.status(200).json({
      success: true,
    });
  });
});

-로그인 부분

app.post("/login", (req, res) => {
  //요청된 이메일을 데이터베이스에서 있는지 찾는다.
  User.findOne({ email: req.body.email }, (err, user) => {
    return res.json({
      loginSuccess: false,
      message: "제공된 이메일에 해당하는 유저가 없습니다. ",
    });
  });
  //요청된 이메일이 데이터메이스에 있다면 비밀번호가 맞는 비밀번호인지 확인
  user.comparePassword(req.body.password, (err, isMatch) => {
    if (!isMatch)
      return res.json({
        loginSuccess: false,
        message: "비밀번호가 틀렸습니다. ",
      });
  });
});

-포트 연결 부분

app.listen(port, () => {
  console.log(`Example app listening on post ${port}!`);
});

 

포스트맨으로 다음 POST 경로를 접근하여

아래 JSON 데이터를 전송해주면

성공 결과 처리를 해주면서

데이터베이스에 다음과 같이 추가된다.