1. body-parser
client에서 sever로 보낸
클라이언트 POST request data의 body로부터 파라미터를 편리하게 추출해주는 node.js 모듈
근데 express쓰면 이거 따로 안써도 된다고함.
1-1. body-parser이용
npm install body-parser --save
const express = require('express');//express안에 body-parser포함되서 따로 안써도 된다고함
const app = express();
const port = 3000 //아무 포트번호 지정
const bodyParser = require('body-parser');
const { User } = require('./models/User');//모델 들고옴
//bodyParser 옵션
app.use(bodyParser.urlencoded({extended: true}));//application/x-www-form-urlencoded
app.use(bodyParser.json());//application/json
app.post('/register', (req, res) => { //라우터의 endpoint가 register
//회원가입 할 때 필요한 정보를 client에서 가져와 DB에 넣음
//모델 가져와서 인스턴스 생성//req.body에 json형태로 데이터 들어있는데 bodyparser에서 파싱해준 것
const user = new User(req.body);
user.save((err, userInfo) => { //모델에 저장
if(err) return res.json({ success: false, err})
return res.status(200).json({
success: true
})
})
})
1-2. express
app.use(express.urlencoded({extended: true}));//application/x-www-form-urlencoded
app.use(express.json());//application/json
2. POSTMAN
현재 클라이언트가 없어서 postman을 사용하여 request 보냄
다른 클라이언트 프로그램 사용해도 상관 x!! 서버 req 테스트 용임
https://www.postman.com/downloads/
서버 켜고
postman에서 데이터 보내보기
DB에 들어간 것 확인
Atlas > Veiw Monitoring > Collections
근데 파라미터가 안들어감
데이터 형식을 JSON으로 해줘야함.
* 처음엔 sucess: true떳는데 두번째부터 11000에러남.
key 중복되서 그렇다고 함(email이 unique)
*required 속성은 필수 입력값!
const mongoose = require('mongoose');
const userSchema = mongoose.Schema({
name: {
type: String,
maxlength: 50,
required: true
},
email: {
type: String,
trim: true,
unique: 1
},
password: {
type: String,
minlength: 5,
required: true
},
role: {
type: Number,
default: 0
},
image: String,
token: {
type: String
},
tokenExp:{
type: Number
}
})
const User = mongoose.model('User', userSchema) //모델이름, 스키마
module.exports = {User} //다른 곳에서도 쓸수 있도록 export
'Frontend > react' 카테고리의 다른 글
비밀 정보 보호 (DB 계정 정보 보호) (0) | 2022.06.23 |
---|---|
NODE MON (0) | 2022.06.23 |
Schema / Model (0) | 2022.06.20 |
몽고DB 연결 (0) | 2022.06.20 |
Node JS / Express JS 설치 (0) | 2022.06.16 |