2017-12-16 1 views
0

하나 개의 경로에서 두 개의 쿼리NodeJS 내가 <code>Invitation</code>와 같은 렌더링 된 파일에 <code>Comments</code> (show.hbs)를 표시해야

내가 여기에이 코드를

, 나는 그 의견의도 표시 할 달성 할 수없는 것을 제외하고는, 잘 일하고있어 . 어떤 도움을 주셔서 감사합니다.

이 코드에는 어떤 오류도 표시되지 않습니다.

app.get('/invitation/:id', (req, res) => { 

    let id = req.params.id; 

    if(!ObjectID.isValid(id)){ 
    return res.status(404).send(); 
    } 

    Comment.find({inviteId: id}).then((comment) => { 
    if(!comment){ 
     return res.status(404).send(); 
    } 
    res.render('show.hbs', {comment}); 
    }, (e) => { 
    res.status(404).send(); 
    }); 

    Invitation.findById(id).then((invitation) => { 
     if(!invitation){ 
     return res.status(404).send(); 
     } 
    res.render('show.hbs', {invitation}); 
}, (e) => { 
    res.status(404).send(); 
}); 

}, (e) => { 
    console.log('Unable to find invitation', e); 
}); 
+1

둥지입니다 서로 내부 기능? – madebydavid

+0

@madebydavid 나는 똑같은 생각을하고 있지만, js에서 funct를 중첩하는 방법을 경험하지 못했습니다. 그 구글 것입니다 :) – feknaz

답변

0
당신이 뭔가를 할 수

,

Invitation.findById(id).then((invitation) => { 
if (!invitation) { 
    return res.status(404).send(); 
} 
Comment.find({ inviteId: id }).then((comment) => { 
    if (!comment) { 
     return res.status(404).send(); 
    } 
    res.render('show.hbs', { comment, invitation}); 
}, (e) => { 
    res.status(404).send(); 
});  
}, (e) => { 
res.status(404).send(); 
}); 

모두 초대로 렌더링하고 @ vibhor1997a에

+0

Heyyyyyyy 그게 효과가있어! 타이! – feknaz

1

TNX을 언급하지만,이는`find` 훨씬 예뻐

try { 
    let invitation = await Invitation.findById(id).then((invitation) => { 
    if (!invitation) { 
    return res.status(404).send(); 
    } 
    let comments = await Comment.find({ inviteId: id }) 
    if (!comments) { 
    return res.status(404).send(); 
    } 
    return res.render('show.hbs', { comments, invitation}); 
} catch (e) { 
    return res.status(500).send(); 
} 
관련 문제