📌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 데이터를 전송해주면
성공 결과 처리를 해주면서
데이터베이스에 다음과 같이 추가된다.
'Node.js' 카테고리의 다른 글
21.04.27 project#4 주소에 /api 붙이는 이유 (0) | 2021.04.30 |
---|---|
21.04.25 project#4 challenge collection 생성 (0) | 2021.04.25 |
21.02.18 스레드풀, 워커스레드 (0) | 2021.03.06 |
21.02.18 Node.js 동작 원리, Event loop (0) | 2021.03.06 |
21.02.17 통신 프로토콜, 패키지 모듈, 쿠키-세션 (0) | 2021.02.18 |