지난 포스팅에서 만들어둔 코드에 회원가입 api기능을 할 register api를 만들어보자. 그리고 아직 프론트 작업이 이루어지지 않았기 때문에 postman을 통해 api호출을 해보았다.
지난 포스팅까지 작성해 둔 코드위에 회원가입 api 생성을 위해 코드를 추가하고 볼드처리했다.
const express = require('express'); // express 임포트
const app = express(); // app생성
const port = 5000;
const { User } = require('./models/User'); // 1. 지난 번 만들어 두었던 User.js(스키마) 임포트
app.use(express.urlencoded({ extended: true })); // application/x-www-form-urlencode
app.use(express.json()); // application/json
// 1.
app.get('/', function (req, res) {
res.send('hello world');
});
// 2. register api
app.post('/register', (req, res) => {
const user = new User(req.body); // 상단에서 require로 가져온 User 스키마에 req.body를 담아 user라는 인스턴스로 만든다.
user.save((err, userInfo) => {
if (err) return res.json({ success: false, err }); // err일 경우 return 값
return res.status(200).json({
//status가 200일 경우 return 값
success: true,
userInfo,
});
});
});
app.listen(port, () => console.log(`${port}포트입니다.`));
// 몽구스 연결
const mongoose = require('mongoose');
mongoose
.connect(
'mongodb+srv://devCecy:algusl109@devcecy.dprgf.mongodb.net/myFirstDatabase?retryWrites=true&w=majority',
{
// useNewUrlParser: true,
// useUnifiedTopology: true,
// useCreateIndex: true,
// useFindAndModify: false,
}
)
.then(() => console.log('MongoDB conected'))
.catch((err) => {
console.log(err);
});
postman은 먼저 https://www.postman.com/ 에서 다운받아주면된다. 웹버전, 데스크톱 버전 둘다 제공하고 있으며 나는 데스크톱에 다운받아 쓰고있다.
postman 상단은 request부분이고 하단이 response부분이다. request는 유저가 회원가입시 입력하는 자신의 정보라고 생각하면된다. response는 유저가 회원가입 버튼을 클릭하면 호출되어 그 결과를 알려주는 부분이라고 생각하면된다. 물론 실제 response는 개발자가 확인하여 회원가입 성공, 실패로 나누어 처리할거싱고, 유저는 회원가입 완료! 혹은 오류! 라는 문구를 보게되는 것이다.
회원가입은 request안에 데이터를 보내고 저장해야 하므로 post 메소드를 사용한다.
localhost로 테스중이기 때문에 http://localhost:5000/register 로 url을 만들어주고, (포트는 자신이 지정한 포트로 사용!)
body – raw – JSON 으로 선택해준뒤, json형태로 회원가입시 필요한 데이터를 넣어준다. (name, email, password, role)
send 버튼을 누르면 하단에 response가 온다. 나는 success:true, userInfo 가 들어오도록 했다. 데이터가 예쁘게 들어왔다!
이제 MongoDB에 회원가입한 데이터가 잘 들어왔나 확인해보자! Browse Collections 를 클릭,
방금 보낸 회원가입 데이터가 DB에 잘 쌓여있다! 회원가입 성공!
John Ahn님의 유튜브 강의를 통해 공부하며 글을 작성했습니다😊