inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

제품 등록에 관하여 질문드립니다.

해결된 질문

183

veris@naver.com

작성한 질문수 5

0

안녕하십니까,  제품 등록시 관리자만 제품을 등록을 할 수 있게 하려면 유저관련한 로직을 변경해야 하는 것인지 문의 드립니다. 

nodejs react mongodb redux 웹앱

답변 2

1

John Ahn

안녕하세요 ^^ 
 

서버 request handler 부분에 미들웨어를 추가 해주시면 됩니다. 

1. 미들웨어를 생성할게요 

Server/middleware 폴더 있죠 ?

거기다가   admin.js 파일을 생성하세요.

2.그곳에 

let admin = (req,res,next) => {
if(req.user.role === 0 ){
return res.send('관리자만 사용 할수 있는 기능입니다.')
}
next()

}

module.exports = { admin }

이 코드를 추가해주세요.

3. 그리고 

product.js 에서   

const { admin } = require("../middleware/admin");

이렇게 방금 만들 admin 모듈을 가져옵니다.

4. 현재 request hanlder가 이런식으로 되어 있죠 ?  여기에 admin    middleware를 추가해주세요 

router.post("/uploadProduct", auth, (req, res) => {

//save all the data we got from the client into the DB
const product = new Product(req.body)

product.save((err) => {
if (err) return res.status(400).json({ success: false, err })
return res.status(200).json({ success: true })
})

});

그러면

router.post("/uploadProduct", auth, admin, (req, res) => {

이런식으로 되겠죠 ! 

####정리   

현재 User  모델에 보시면 

role: {
type: Number,
default: 0
}, 

이런식으로 유저 role이 0 이 기본으로 되어있는데 

기본을 1 이나 다른걸로 바꿔 주시고 

0을  관리자로 해주세요 ( 아니면  admin.js 에서 관리자 숫자를 바꿔주셔도 됩니다. )

그리고 관리자로 선택해주시고 싶은 사람만  데이터베이스에서  role을 0으로 수동으로 바꿔주시면

그 관리자만     product를 업로드 가능하게 됩니다.

0

veris@naver.com

자세하게 가르쳐 주셔서 정말 감사합니다. 리덕스가 많이 어려웠는데 강사님 덕분에 조금씩 이해가 되어서 많은 도움이 되었습니다.

강의 내용은 훌륭하나, 환경 설정 오류 때문에 진도를 나갈 수 없습니다. 20년 버전 강의.

0

60

1

강의자료는 어디서 볼 수있나요??

0

66

1

이 쇼핑몰 만들기 강의는 관리자페이지 만드는건 없나요

0

114

2

웹에서 실시간 코드반영이 안돼요

0

120

1

app.use질문

0

64

1

강사님께 어떻게 직접질문할수있어요??

0

76

1

const함수같은거 기초강의는 어디있나요

0

81

2

리덕스 참조챕터가 어딨어요? 미리듣고오라는데요

0

81

2

강의가완전 오래되서 다 틀리네 app.jsx도 tailwind css 다틀림 무책임함

0

68

1

개발자도구에 redux란이 없어요

0

88

1

npx tailwindcss init -p 에서 계속 에러나요

0

92

1

쇼핑몰기능중 찜하기 기능은 어떻게 구현하나요

0

139

2

강의하다 줌으로 설명가능한지좀 정확히 알려주세요. 이 선생님 정책이 어떻게 되는데요. 직접 연락할 메일이라도 알려주세요

0

43

1

도표 강의 자료 열람 불가능

0

109

1

tailwindcss를 vite에서 이용하는 방식이 바뀐것 같습니다.

0

1132

2

eslint 설정 후 오류가 납니다.

0

223

1

오버로드 오류

0

150

1

VSCode에서 save를 할 때, landingpage의 useEffect가 실행되는 문제에 대하여

0

169

1

dispatch(logoutUser()) 실행시 dispatch(authuser())도 함께 실행되는 문제

0

228

2

logout할 때, server로 요청을 보내서 authUser middleware를 통과하도록 하는 이유?

0

195

1

webkit-text-size-adjust 오류

0

315

1

does not provide an export named 'userReducer'

0

217

2

빌드 배포

0

140

1

삭제 예정 강의는 언제 삭제 되나요? 저것때문에 수강완료를 못하면 회사에서 비용을 청구한다고 합니다~

0

220

2