node.js并行请求正在崩溃节点应用程序 - 无法呈现标头

时间:2014-10-22 17:09:40

标签: node.js express

如何复制问题,

一个。持续刷新浏览器(cmd + r),然后应用程序崩溃并显示以下消息

B中。运行mocha测试套件,在我内部使用npm模块请求获取http请求并且所有这些请求都通过,但是当我在测试运行时使用postman并行发送另一个请求时,应用程序崩溃并显示以下消息

http.js:731
throw new Error('Can\'t render headers after they are sent to the client.'
      ^
Error: Can't render headers after they are sent to the client.
    at ServerResponse.OutgoingMessage._renderHeaders (http.js:731:11)
    at ServerResponse.writeHead (http.js:1152:20)
    at puremvc.define.signInWithCredentialsSuccess (eval at include     (/Library/WebServer/Documents/FICO/fico-node/app.js:3:32), <anonymous>:31:18)

引用的代码

signInWithCredentialsSuccess: function(request, response, authToken) {
    response.writeHead(200, {'Content-Type': 'text/xml'})
    response.end(this.mustache.render(this.successTemplate, {authToken: authToken}));
},

这是一个结合puremvc的快速应用程序,因此架构有点不同,例如在app.get之后,请求和响应被传递给完成任务的不同解耦模块和函数,并简单地结束通过写入一些输出进行响应,然后使用传递的新响应/请求对象为每个后续请求重复该过程。

我假设我应该为每个请求获取一个新的请求和响应对象,但错误消息混淆了由于某种原因app.get给了我一个旧的响应对象的引用,该响应对象已经用于发送信息向客户说明拒绝修改标题的原因。

我的节点版本是0.10.32

请告知

0 个答案:

没有答案