如何在node.js中处理post数据后设置cookie头

时间:2016-06-10 12:18:21

标签: javascript node.js post cookies

我有我的节点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请求的数据。

1 个答案:

答案 0 :(得分:0)

response.statusCode

之前,

response.setHeader必须