인프런 커뮤니티 질문&답변
register 에러입니다.
작성
·
236
0
안녕하세요. 강의 잘 보고 있습니다.
postman send 시 계속 false가 나오는데, err 메세지를 구체적으로 보려면 어떻게 디버깅해야하는 건가요?
index.js 파일 첨부합니다.
const express = require('express')
const app = express()
const port = 5000
const bodyParser = require('body-parser');
const {User} = require("./models/User");
const config = require("./config/key");
//application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended:true}));
//application/json 타입을 분석해서 가져올 수 있게 해준 거
app.use(bodyParser.json());
const mongoose = require('mongoose');
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!')
})
//register 라우터
//body-parser을 통해서 클라이언트 > 서버 로 넘어오는 데이터를 받을 수 있다. npm install body-parser --save
app.post('/register',(req,res)=> {
//회원 가입할때 필요한 정보들을 client에서 가져오면 그것들을 데이터베이스에 넣어준다.
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
})
})
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
user.js 파일 첨부합니다.
const mongoose = require('mongoose');
const bcrypt = require('bcrypt');
const { logger } = require('..');
const saltRounds = 10;
const userSchema = mongoose.Schema({
name : {
type : String,
maxlength:50
},
email:{
type:String,
trim:true,
unique:1
},
password:{
type:String,
minlength:5
},
role:{
type:Number,
default:0
},
image:String,
token:{
type:String
},
tokenExp:{
type:Number
}
})
userSchema.pre('save',function(next){
var use = this;
if(user.isModified('password')){
//비밀번호를 암호화 시킨다.
bcrypt.genSalt(saltRounds,function (err,salt) {
if(err) return next(err)
logger.info('ddddd');
bcrypt.hash(user.password,salt,function(err,hash){
if(err) return next(err)
user.password = hash
next()
})
})
} else {
next()
}
})
//스키마를 모델로 감싼다
const User = mongoose.model('User',userSchema)
//다른파일에서도 이 모델을 사용할 수 있도록
module.exports = {User}
서버 켜져있습니다.
index.js에 console.log(req.body)했을 시 postman 입력값 전송됨을 확인하였습니다.
포스트맨 결과입니다.
조언 부탁드립니다.





