我有我的节点http服务器请求的登录代码,可以进行简单的登录:
if (request.method === 'POST' && request.url.endsWith('login'))
{
request.on('data', function(data) {
var credentials = JSON.parse(data);
if (credentials && credentials.name === 'test' && credentials.password === 'letmein')
{
// ok, new login
securityCookieValue = guid();
response.setHeader('Set-Cookie', 'JSESSIONID=' + securityCookieValue);
response.statusCode = 200;
response.end();
return;
}
else
{
// request new login
response.statusCode = 401;
response.end();
return;
}
});
}
这给了我一个Can't set headers after they are sent
错误。 Contents of Notifications for Amazon SES Email Receiving确实足以解释为什么会发生这种情况:传递给request.on
的函数在标题发送后处理。
我该如何避免这种情况。在设置cookie之前,我需要读取并解析POST请求的数据。
答案 0 :(得分:0)
response.statusCode
之前, response.setHeader
必须