头文件发送混乱后无法发送

时间:2018-07-18 20:07:56

标签: javascript node.js express backend

我目前正在尝试学习速成知识,并且正在研究Reddit的一个克隆。我有一个中间件功能,可以检查您是否是subreddit的主持人。我一直收到错误消息“发送后无法设置标题”。经过一番摆弄之后,我注意到如果运行以下代码,这就是输出:

// checking: 5b4f905adcee540d9f5fb61b
// MATCH
// checking: 5b4f92fd2a74d10e2095f993
// REDIRECT TO fr/:name

middlewareObj.isModerator = function(req, res, next) {
    Subfreddit.findOne({name: req.params.name}, function(err, foundSubfreddit) {
        if(err) {
            return res.redirect("/fr/" + req.params.name);
        }
        foundSubfreddit.moderators.forEach(function(mod) {
            console.log("checking: " + mod);
            if(mod._id.equals(req.user._id)) {
                console.log("MATCH");
                match = true;
                return next();
            }
        });
        console.log("REDIRECT TO fr/:name")
        res.redirect("/fr/" + req.params.name);   
    });
};

根据我的理解,当我下次返回时,我假设该函数将停止并继续进行下一个过程。根据输出,情况似乎并非如此,而且还在继续。当它尝试重定向时,它已经在路由上发送了信息。为什么显示此行为? (我通过添加一个名为“ match”的布尔值解决了该问题,如果它为true,则不会重定向)。

0 个答案:

没有答案