Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在响应后停止执行代码_Javascript_Node.js_Express - Fatal编程技术网

Javascript 如何在响应后停止执行代码

Javascript 如何在响应后停止执行代码,javascript,node.js,express,Javascript,Node.js,Express,在这里,我不明白,在响应之后,为什么其余的代码正在执行。如果我错了,请帮助我。所以我想在响应之后停止执行调用,我该怎么做呢,因为不必要地访问数据库,我认为若代码正在执行,那个么响应处理程序就并没有什么好处了 我的响应处理程序是 var responseHandler = function(res,responseObject,message,error,status){ console.log(responseObject) console.log(status) res.statu

在这里,我不明白,在响应之后,为什么其余的代码正在执行。如果我错了,请帮助我。所以我想在响应之后停止执行调用,我该怎么做呢,因为不必要地访问数据库,我认为若代码正在执行,那个么响应处理程序就并没有什么好处了

我的响应处理程序是

var responseHandler = function(res,responseObject,message,error,status){
  console.log(responseObject)
  console.log(status)
  res.status(status).send({
    "error":error,
    "message":message,
    "response":responseObject
  })
  res.end();
}

module.exports.responseHandler = responseHandler;
下面,错误发生后,我正在响应,但console.log也在工作。所以我在那里编写了数据库调用,然后它也会执行。所以这里有误解

registrationObj.save(function(err,registrationObj){
  if(err){
    configurationHolder.ResponseUtil.responseHandler(res,null,configurationHolder.errorMessage.failedAuthorization,true,401);
    console.log("printing");
  } else {
    next(null, registrationObj);
  }

你能在你与数据库交谈的地方添加这篇文章吗?或者添加评论?现在还不太清楚问题出在哪里。@AlbertoZaccagni谢谢你的回答,我修改了问题,请检查一下,只是为了弄清楚:你在问为什么
responseHandler
之外的代码会在你调用
res.end()后继续运行
?@JamesThorpe是的,在res.end()之后,console.log正在运行,为什么?据我所知,调用
.end()
只是向服务器发出信号,表示您已完成向客户端发送数据。它实际上并没有停止服务器端处理—如果您想停止执行进一步的代码,您需要将逻辑放在适当的位置(可能会从
responseHandler
?)返回一些内容)来告诉其余的代码您已经完成了,这样它就可以停止了。