인프런 커뮤니티 질문&답변
제품 등록에 관하여 질문드립니다.
해결된 질문
작성
·
180
답변 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





