4
我有一个快递控制器动作“可以”发送内容的情况。如何测试响应是否已设置/发送?
“发送”意指含量发送(HTTP 200)或HTTP状态设置为某事(HTTP状态204或例如重定向)
如果没有被送到/设置默认程序应发出默认内容。
如果快速控制器操作已经设置了内容或设置了状态码,我该如何测试我的默认例程?
我有一个快递控制器动作“可以”发送内容的情况。如何测试响应是否已设置/发送?
“发送”意指含量发送(HTTP 200)或HTTP状态设置为某事(HTTP状态204或例如重定向)
如果没有被送到/设置默认程序应发出默认内容。
如果快速控制器操作已经设置了内容或设置了状态码,我该如何测试我的默认例程?
response.headersSent
应该工作。
例如:
if (response.headersSent) {
console.log('Headers sent!')
} else {
console.log('Headers have not been sent.')
}
res.writeHead(200);
if (response.headersSent) {
console.log('Headers sent!')
} else {
console.log('Headers have not been sent.')
}
与客户端的连接应登录:
Headers have not been sent.
Headers sent!
你是如何钩住你的 '默认程序'?如果不需要发送任何东西,一个更常见的方法是让你的控制器动作调用next()。 – robertklep 2013-03-08 07:31:04
它更复杂一点...简单的问题是:如何跟踪http状态/内容是否已写入响应? – lgersman 2013-03-08 08:05:04
没有API,只有黑客(比如在你的控制器中设置'res'的自定义属性,或者检查'res.finished'以及所有形式的异步问题以及打破Express更新的可能性)。 – robertklep 2013-03-08 08:12:32