인프런 커뮤니티 질문&답변

지현님의 프로필 이미지
지현

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기

댓글 기능 생성 (2) Comment.js

new Comment

작성

·

272

0

안녕하세요 선생님. 수업 잘 듣고 있습니다! 처음으로 질문이 생겨서 질문을 등록하게되었습니다.

12:10 에서 const comment = new Comment 이렇게

만들어주신 뒤에 comment 를 그 다음줄에서 사용하였는데

이 부분에서 의문이 생겨서 질문드립니다.

다른 routes 폴더들을 보았을 때,

router.post("/subscribe", (req, res) => {
const subscribe = new Subscriber(req.body);

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

이렇게 생성해서 사용하는 것이 있고

 
router.post("/unSubscribe", (req, res) => {
Subscriber.findOneAndDelete({
userTo: req.body.userTo,
userFrom: req.body.userFrom,
}).exec((err, doc) => {
if (err) return res.status(400).json({ success: false, err });
res.status(200).json({ success: true, doc });
});
});

이렇게 모델 자체를 바로 사용하는 것이 있는데

이 둘의 차이점은 어떤것일까요?

 

-------------------------------------------------------

그리고 또 exec 부분에서 err 뒤에 넘겨주는 것들은 사용자가 임의로 지정하는 것일까요? 어디서 정의된 것인지 헷갈릴때가 많네요 ㅠ

Subscriber.find({ userFrom: req.body.userFrom }).exec(
(err, subscribeInfo) => {
if (err) return res.status(400).send(err);

let subscribedUser = [];

subscribeInfo.map((subscriber, i) => {
subscribedUser.push(subscriber.userTo);
});

//찾은 사람들의 비디오를 가지고 옴
Video.find({ writer: { $in: subscribedUser } })
.populate("writer")
.exec((err, videos) => {
if (err) return res.status(400).send(err);
res.status(200).json({ success: true, videos });
});
}
);

예를 들어 이 코드에서

exec 뒤에 err , subsribeInfo

map 뒤에 subscriber, i

exec 뒤에 err, videos 같은것이요!!

답변 1

0

해결 하셨나요?? 한참 지났지만..

const comment = new Comment 인 부분은 모델을 이용해서 document instance를 생성하는 과정입니다 저는 비유적으로 데이터베이스의 Comment라는 폴더 안에 comment라는 파일을 생성한다는 느낌으로 이해했어요! document가 생성될 때는 모델을 만들 때 정의된 Schema의 규칙을 따라 생성됩니다

모델 자체를 사용하는 경우는 데이터베이스 안에서 Comment 모델의 특정 조건에 해당하는 document를 찾는 과정입니다 폴더 안에서 이미 존재하는 파일을 찾는것과 비슷하다는 식으로 저는 이해했습니다.

 

지현님의 프로필 이미지
지현

작성한 질문수

질문하기