Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
students
messenger
Commits
984a1deb
Commit
984a1deb
authored
Jan 15, 2021
by
우지원
Browse files
Merge remote-tracking branch 'origin/young' into jiweon827
parents
0afa135b
d80d2238
Changes
27
Hide whitespace changes
Inline
Side-by-side
server/controllers/profile.controller.js
deleted
100644 → 0
View file @
0afa135b
import
Profile
from
"
../models/profile.js
"
import
bcrypt
from
"
bcryptjs
"
;
import
jwt
from
'
jsonwebtoken
'
import
config
from
"
../config.js
"
const
getimage
=
async
(
req
,
res
)
=>
{
const
defaultimg
=
'
https://t1.daumcdn.net/cfile/tistory/2761AA4558A05CBE2A
'
// const newImg = await new Profile({
// defaultimg
// //required를 하였기 때문에 이중 하나라도 없으면 에러 발생
// }).save()
}
export
default
{
getimage
}
\ No newline at end of file
server/controllers/user.controller.js
View file @
984a1deb
...
@@ -4,20 +4,14 @@ import isEmail from 'validator/lib/isEmail.js'
...
@@ -4,20 +4,14 @@ import isEmail from 'validator/lib/isEmail.js'
import
bcrypt
from
"
bcryptjs
"
;
import
bcrypt
from
"
bcryptjs
"
;
import
jwt
from
'
jsonwebtoken
'
import
jwt
from
'
jsonwebtoken
'
import
config
from
"
../config.js
"
import
config
from
"
../config.js
"
//꼭 js붙여주기!!
//sign validation해야됨
const
signup
=
async
(
req
,
res
)
=>
{
const
signup
=
async
(
req
,
res
)
=>
{
const
{
username
,
nickname
,
email
,
password
}
=
req
.
body
const
{
username
,
nickname
,
email
,
password
}
=
req
.
body
//req.body를 구조분해하여 각각 보이게함 -> 모든정보들이 한줄에 보임
console
.
log
(
username
,
nickname
,
email
,
password
)
try
{
try
{
if
(
!
isLength
(
username
,
{
min
:
3
,
max
:
10
}))
{
if
(
!
isLength
(
username
,
{
min
:
3
,
max
:
10
}))
{
//이범위를 벗어나면 error발생
return
res
.
status
(
422
).
send
(
'
이름은 3-10자 사이입니다
'
)
return
res
.
status
(
422
).
send
(
'
이름은 3-10자 사이입니다
'
)
//422 : 형식이 잘못되었다는 error발생
}
else
if
(
!
isLength
(
nickname
,
{
min
:
2
,
max
:
10
}))
{
}
else
if
(
!
isLength
(
nickname
,
{
min
:
2
,
max
:
10
}))
{
return
res
.
status
(
422
).
send
(
'
별명은 2-10자 사이입니다.
'
)
return
res
.
status
(
422
).
send
(
'
별명은 2-10자 사이입니다.
'
)
}
else
if
(
!
isLength
(
password
,
{
min
:
6
}))
{
}
else
if
(
!
isLength
(
password
,
{
min
:
6
}))
{
...
@@ -25,36 +19,21 @@ const signup = async (req, res) => {
...
@@ -25,36 +19,21 @@ const signup = async (req, res) => {
}
else
if
(
!
isEmail
(
email
))
{
}
else
if
(
!
isEmail
(
email
))
{
return
res
.
status
(
422
).
send
(
'
유효하지 않은 이메일 형식입니다
'
)
return
res
.
status
(
422
).
send
(
'
유효하지 않은 이메일 형식입니다
'
)
}
}
// else if (!isLength(nickname, { min: 3, max: 10 })) {
// return res.status(422).send('Nickname must be 3-10 characters')
// } else if (!isEmail(email, {
// allow_display_name: true,
// require_display_name: true,
// allow_utf8_local_part: false,
// })) {
// return res.status(422).send('Email does not fit the format')
// } else if (!isLength(password, { min: 6, max: 25 })) {
// return res.status(422).send('Nickname must be 6-25 characters')
// }
// 기존의 email이 있으면 나오는 error (unique)
const
user
=
await
User
.
findOne
({
email
})
const
user
=
await
User
.
findOne
({
email
})
if
(
user
)
{
if
(
user
)
{
return
res
.
status
(
422
).
send
(
`
${
email
}
이 이미 사용중입니다.`
)
return
res
.
status
(
422
).
send
(
`
${
email
}
이 이미 사용중입니다.`
)
}
}
const
hash
=
await
bcrypt
.
hash
(
password
,
10
)
const
hash
=
await
bcrypt
.
hash
(
password
,
10
)
//promise이므로 await사용함
const
newUser
=
await
new
User
({
const
newUser
=
await
new
User
({
username
,
username
,
nickname
,
nickname
,
email
,
email
,
password
:
hash
,
password
:
hash
,
//required를 하였기 때문에 이중 하나라도 없으면 에러 발생
}).
save
()
}).
save
()
//save시 user schema형식에 맞는지 확인후 틀리면 error발생 맞으면 mongooDb로 들어감
//save(promise)붙일 시 fuction 앞에 await 붙여주기 + async 함수 앞에 붙여주기
console
.
log
(
newUser
)
console
.
log
(
newUser
)
res
.
json
(
newUser
)
res
.
json
(
newUser
)
...
@@ -69,8 +48,6 @@ const hello = async (req, res) => {
...
@@ -69,8 +48,6 @@ const hello = async (req, res) => {
return
res
.
json
(
users
)
return
res
.
json
(
users
)
}
}
const
logineduser
=
async
(
req
,
res
)
=>
{
const
logineduser
=
async
(
req
,
res
)
=>
{
try
{
try
{
let
user
=
await
User
.
findOne
(
req
.
body
).
select
(
'
username email nickname
'
).
exec
()
let
user
=
await
User
.
findOne
(
req
.
body
).
select
(
'
username email nickname
'
).
exec
()
...
...
server/models/Chat.js
View file @
984a1deb
import
mongoose
from
'
mongoose
'
import
mongoose
from
'
mongoose
'
const
{
String
}
=
mongoose
.
Schema
.
Types
const
{
String
}
=
mongoose
.
Schema
.
Types
const
ChatSchema
=
new
mongoose
.
Schema
({
const
ChatSchema
=
new
mongoose
.
Schema
({
roomId
:
{
room
:
{
type
:
String
,
type
:
ObjectId
,
// default:() => nanoid(),
unique
:
true
//ref:'Room' -> Room의 형식을 참고할 수 있다.
},
name
:
{
type
:
String
,
required
:
true
,
required
:
true
,
ref
:
'
Room
'
,
},
},
interest
:
{
username
:
{
type
:
String
,
type
:
String
,
required
:
true
,
required
:
true
,
select
:
false
ref
:
'
User
'
,
},
},
isOpen
:
{
message
:
String
,
type
:
Boolean
,
required
:
true
,
}
},
{
},
{
timestamps
:
true
timestamps
:
true
})
})
export
default
mongoose
.
models
.
ChatSchema
||
mongoose
.
model
(
'
chat
'
,
ChatSchema
)
export
default
mongoose
.
models
.
ChatSchema
||
mongoose
.
model
(
'
Chat
'
,
ChatSchema
)
\ No newline at end of file
\ No newline at end of file
server/models/Room.js
0 → 100644
View file @
984a1deb
import
mongoose
from
'
mongoose
'
const
{
String
}
=
mongoose
.
Schema
.
Types
const
RoomSchema
=
new
mongoose
.
Schema
({
name
:
{
type
:
String
,
required
:
true
,
},
interest
:
{
type
:
String
,
required
:
true
,
select
:
false
},
isOpen
:
{
type
:
String
,
required
:
true
,
default
:
'
user
'
,
enum
:
[
'
user
'
,
'
admin
'
,
'
root
'
]
}
},
{
timestamps
:
true
})
export
default
mongoose
.
models
.
RoomSchema
||
mongoose
.
model
(
'
Room
'
,
RoomSchema
)
server/models/profile.js
deleted
100644 → 0
View file @
0afa135b
import
mongoose
from
'
mongoose
'
const
{
String
}
=
mongoose
.
Schema
.
Types
const
ProfileSchema
=
new
mongoose
.
Schema
({
defaultImg
:
{
type
:
String
,
required
:
true
,
},
},
{
timestamps
:
true
})
export
default
mongoose
.
models
.
ProfileSchema
||
mongoose
.
model
(
'
profile
'
,
ProfileSchema
)
\ No newline at end of file
server/routes/profile.routes.js
deleted
100644 → 0
View file @
0afa135b
import
express
from
'
express
'
import
profileCtrl
from
"
../controllers/profile.controller.js
"
;
const
router
=
express
.
Router
()
router
.
route
(
'
/profile
'
)
.
get
(
profileCtrl
.
getimage
)
export
default
router
\ No newline at end of file
server/server.js
View file @
984a1deb
...
@@ -2,8 +2,6 @@ import express from 'express'
...
@@ -2,8 +2,6 @@ import express from 'express'
import
connectDb
from
'
./utils/connectDb.js
'
import
connectDb
from
'
./utils/connectDb.js
'
import
userRouter
from
'
./routes/user.routes.js
'
import
userRouter
from
'
./routes/user.routes.js
'
import
authRouter
from
'
./routes/auth.routes.js
'
import
authRouter
from
'
./routes/auth.routes.js
'
import
profileRouter
from
'
./routes/profile.routes.js
'
import
cors
from
"
cors
"
;
import
bodyParser
from
"
body-parser
"
;
import
bodyParser
from
"
body-parser
"
;
import
http
from
"
http
"
;
import
http
from
"
http
"
;
import
{
Server
}
from
'
socket.io
'
;
import
{
Server
}
from
'
socket.io
'
;
...
@@ -45,14 +43,8 @@ io.on("connection", (socket) => { // 기본 연결
...
@@ -45,14 +43,8 @@ io.on("connection", (socket) => { // 기본 연결
//이부분을 body 파싱함
//이부분을 body 파싱함
app
.
use
(
bodyParser
.
json
());
app
.
use
(
bodyParser
.
json
());
// app.use(cors());
// app.use('/', indexRouter);
//express가 req.body라는곳을 자동으로만들어서 json형식으로 보낸것을 객체형식으로 넣음
//이부분 다음부터는 req.body라는 부분을 실행할 수 있음
app
.
use
(
userRouter
)
app
.
use
(
userRouter
)
app
.
use
(
authRouter
)
app
.
use
(
authRouter
)
app
.
use
(
profileRouter
)
//userRouter로 이동
//userRouter로 이동
app
.
get
(
'
/
'
,
(
req
,
res
)
=>
{
app
.
get
(
'
/
'
,
(
req
,
res
)
=>
{
...
@@ -63,9 +55,5 @@ server.listen(3030, () => {
...
@@ -63,9 +55,5 @@ server.listen(3030, () => {
console
.
log
(
'
Listening on port 3030
'
)
console
.
log
(
'
Listening on port 3030
'
)
})
})
/////////////////////////////////////////////////////////
// export default server
// export default server
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment