2013-04-06 105 views
5

如何结束Express 3请求? res.end()肯定不会停止处理。终止ExpressJS请求

exports.home = function(req, res) { 
    res.end(); 
    console.log('Still going, going...'); 

回答

6

您需要return。例如,

exports.home = function(req, res) { 
    return res.end(); 
    console.log('I will never run...'); 

res.end()简单地完成,并刷新到客户端的响应。然而,就像任何其他动作一样,它并不会告诉JavaScript停止运行,所以我们需要明确地将return排除在函数之外(尽管我可能会问你为什么在刷新响应后为什么会有代码想运行...?)。

+0

啊差不多了!我有res.send(500),然后返回res.end(),它永远循环 - 返回res.send(500)给了我我需要的东西。为了回答你的问题,我只是简单地检查一些需要的变量(对于一个api提要)的存在,并且希望只是保留,而不是将其余的代码封装在条件循环中。 – cyberwombat 2013-04-06 03:09:59