exports.detail = (req, res) => {
Ques.find({_id: req.params.id})
.exec((err, questions) => {
if (err) next (err);
res.render('pages/sub/detail', {questions: questions});
});
// 获取评论的内容
Comment.find({topicId: req.params.id})
.exec((err, comments) => {
if (err) next (err);
console.log('评论的个数为:', comments.length);
res.render('pages/sub/detail', {comments: comments});
});
}
运行出现Can't set headers after they are sent, 原因大概是设置发送header两次吧, 应该怎修改呢
没猜错的话
Ques.find
和Comment.find
是两个异步操作吧?两个回调分别执行了,res.render
执行了两次。如果是两个无关的请求,应该用两个路由去处理,前端发起两次请求。
如果希望处理一个请求,可以使用
Promise.all
。前提是Ques
和Comment
都 Promise 化。如果不想用 Promise,那么笨办法就是嵌套。不推荐这样做。