Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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 节点断开连接并说:Can';t在发送邮件后设置邮件头_Javascript_Node.js_Api - Fatal编程技术网

Javascript 节点断开连接并说:Can';t在发送邮件后设置邮件头

Javascript 节点断开连接并说:Can';t在发送邮件后设置邮件头,javascript,node.js,api,Javascript,Node.js,Api,register.js events.js:160 throw er; // Unhandled 'error' event ^ Error: Can't set headers after they are sent. register.js:20:18 mainFunctions.js user.save(function(err) { if(err){ return mainFunctions.sendError(res, req, err

register.js

events.js:160
      throw er; // Unhandled 'error' event
      ^
Error: Can't set headers after they are sent.
register.js:20:18
mainFunctions.js

  user.save(function(err) {
    if(err){
      return mainFunctions.sendError(res, req, err, 500, 'error register')
    } else{
      mainFunctions.sendCheck(res, 'Register successful', 200);
      return res.redirect('/');
    }

另外,在server.js(主文件app)中,我编写了app.set('json spaces',0)

这两行代码是主要问题

module.exports = {
  sendError: function(res, err, status=500, stringLog='withOutStringLog'){
    log.error(stringLog + err);
    res.setHeader('Content-Type', 'application/json');
    res.status(status).send(JSON.stringify({ err }));
  },
  sendCheck: function(res, stringLog='withOutStringLog', status=200){
    log.info(stringLog);
    res.setHeader('Content-Type', 'application/json');
    res.status(status).send(JSON.stringify({ stringLog }));
  }
}
他们都试图将响应发送回客户端

为了解决这个问题。你可以简单地评论其中一个

从您的代码中,我建议您离开
return res.redirect('/')因为它会在成功登录/注册时将用户重定向到主页


希望这有帮助。

log=winston(logger)
user.save
else
block:您使用
sendCheck
发送响应,然后尝试发送另一个(
redirect
)。FWIW,Express有一个有用的方法可以为您保存一些代码。如果您多次调用res.send(),则会出现此错误。如果发生这种情况,您可以使用1 res调试(thx,wostex=),它可以工作。
mainFunctions.sendCheck(res, 'Register successful', 200);
return res.redirect('/');