박민정

[feat] Connect server and client

......@@ -3066,6 +3066,14 @@
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.1.tgz",
"integrity": "sha512-evY7DN8qSIbsW2H/TWQ1bX3sXN1d4MNb5Vb4n7BzPuCwRHdkZ1H2eNLuSh73EoQqkGKUtju2G2HCcjCfhvZIAA=="
},
"axios": {
"version": "0.21.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"requires": {
"follow-redirects": "^1.10.0"
}
},
"axobject-query": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
......
......@@ -6,6 +6,7 @@
"@testing-library/jest-dom": "^5.12.0",
"@testing-library/react": "^11.2.7",
"@testing-library/user-event": "^12.8.3",
"axios": "^0.21.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router-dom": "^5.2.0",
......
import React from 'react'
import React, {useEffect} from 'react'
import axios from 'axios'
function LandingPage() {
// 랜딩페이지에 들어오자마자
useEffect(() => {
axios.get('http://localhost:5000/api/hello') // get request를 서버로 보냄 (endpoint는 /api/hello)
.then(response => console.log(response.data)) // 서버로부터 응답 받은 내용을 콘솔에 출력
}, [])
function LandingPage() {
return (
<div>
LandingPage 랜딩페이지
......
......@@ -3,7 +3,8 @@ const app = express()
const port = 5000
// User.js에서 만든 model을 가져옴
const { User } = require('./server/models/User')
const { User } = require('./models/User')
//const { User } = require('./')
// body-parser 가져옴
const bodyParser = require('body-parser')
......@@ -11,14 +12,14 @@ const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({extended: true})) //application/x-www-form-urlencoded로 된 데이터를 분석해서 가져옴
app.use(bodyParser.json()) // application/json 타입으로 된 데이터를 분석해서 가져옴
const config = require('./server/config/key')
const config = require('./config/key')
const cookieParser = require('cookie-parser')
app.use(cookieParser())
const mongoose = require('mongoose')
const { auth } = require('./server/middleware/auth')
const { auth } = require('./middleware/auth')
//이 정보는 비밀임..! 몽고DB아이디랑 비밀번호를 감춰야해..!
mongoose.connect(config.mongoURI, {
......@@ -107,6 +108,12 @@ app.get('/api/users/logout', auth, (req, res) => {
})
})
// test
app.get('/api/hello', (req, res) => {
res.send("hello");
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
\ No newline at end of file
......
......@@ -47,10 +47,10 @@ userSchema.pre('save', function( next ){
if(user.isModified('password')) // password를 변경할 때만 적용되도록..
{
// 비밀번호 암호화 (https://www.npmjs.com/package/bcrypt 에서 가져옴)
bcrypt.genSalt(saltRounds, function(err, salt) // salt를 만드는 함수
bcrypt.genSalt(saltRounds, (err, salt) => // salt를 만드는 함수
{
if(err) return next(err) // 에러 나면 return err
bcrypt.hash(user.password, salt, function(err, hash) { // bcrypt.hash(암호화되지 않은 pw, salt, function(err, 암호화된 비밀번호))
bcrypt.hash(user.password, salt, (err, hash) => { // bcrypt.hash(암호화되지 않은 pw, salt, function(err, 암호화된 비밀번호))
if(err) return next(err) // 에러 나면 return err
user.password = hash // 성공하면 user.password를 hash로 교체
next()
......