-
카테고리
-
세부 분야
풀스택
-
해결 여부
해결됨
POST 메서드로 값을 넣어주고 몽구스 .create() 쿼리를 사용하면 컴퍼스에 __v 속성이 생성됩니다.
22.02.03 12:17 작성 조회수 230
0
제가 개인적으로 쇼핑몰 비슷한 프로젝트를 진행중인데 상품 데이터를 추가해주기 위해서 post로 받을 수 있게 라우터를 뚫어놓고
req.body에 있는 데이터 들을 .create()를 사용해서 데이터를 추가할 수 있게 해주었습니다.
router.post("/", async (req, res, next) => {
const { name, price, origin, type } = req.body;
try {
const products = await Product.create({
name,
price,
origin,
type,
});
res.send("값을 잘 받았습니다!");
} catch (err) {
console.error(err);
next(err);
res.send("값을 받지 못하였습니다.");
}
});
상품데이터를 post로 받는것과 저의 mongodb 데이터베이스에 데이터를 넣는거 까지는 잘 됩니다. 그런데 컴퍼스를 확인해보니 제가 컴퍼스로 직접 넣은데이터와 post로 넣은 데이터가 차이가 존재합니다.
농구공은 제가 컴퍼스로 넣었고 덤밸은 post로 넣었습니다. 덤밸 데이터에 __V 속성이 0으로 존재합니다. 제가 postman프로그램으로 post요청을 보내었는데 json형식으로 다음과 같이 보냈습니다.
{
"name": "덤밸",
"price": 25000,
"origin": "대만",
"type": "운동용품"
}
__V가 생기는 원인과 post메서드로 보내었을때 저 속성이 안생기게 할수 있을까요?
추가적으로 sql을 사용 할 때는 모델을 생성 할 때 테이블 옵션을 사용해서 createdAt을 생성 할 수 있게끔 할 수있었는데
mongodb를 사용할 때에도 비슷한 방법으로 할 수 있나요?
답변을 작성해보세요.
답변 1