不了解Node.js中的Cookie

阿尔纳夫·加尔格(Arnav Garg)

我正在Node.js中编写一个涉及cookie的程序。我不想使用Express之类的库。我在网上找到了以下有关使用Cookie的代码,但是我不确定它是如何工作的。有人可以为我分解吗?另外,我不确定代码的哪一部分读取系统中的cookie,以及哪一部分将其写入。您能否也澄清一下?

谢谢:

这是代码:

var http = require('http');

function parseCookies(cookie) {
    return cookie.split(';').reduce(
        function(prev, curr) {
            var m = / *([^=]+)=(.*)/.exec(curr);
            var key = m[1];
            var value = decodeURIComponent(m[2]);
            prev[key] = value;
            return prev;
        },
        { }
    );
}

function stringifyCookies(cookies) {
    var list = [ ];
    for (var key in cookies) {
        list.push(key + '=' + encodeURIComponent(cookies[key]));
    }
    return list.join('; ');
}

http.createServer(function (request, response) {
  var cookies = parseCookies(request.headers.cookie);
  console.log('Input cookies: ', cookies);
  cookies.search = 'google';
  if (cookies.counter)
    cookies.counter++;
  else
    cookies.counter = 1;
  console.log('Output cookies: ', cookies);
  response.writeHead(200, {
    'Set-Cookie': stringifyCookies(cookies),
    'Content-Type': 'text/plain'
  });
  response.end('Hello World\n');
}).listen(1234);
Bcherny

Cookies只是浏览器向服务器发送请求时作为标题发送的一段文本。然后,服务器可以根据需要修改Cookie,并将其作为标头发送回浏览器。

cookie的约定是,它们是由&符号分隔的键值对&,就像URL中的查询字符串一样(这就是为什么,decodeURIComponent并且encodeURIComponent在您的示例中起作用!)。

parseCookies从Cookie字符串读取到代表您的Cookie的对象。例如。

// Input
"foo=bar&baz=42"

// Output
{foo: "bar", baz: 42}

stringifyCookies 接收该cookie对象,并将其转换回cookie:

// Input
{foo: "bar", baz: 42}

// Output
"foo=bar&baz=42"

那有意义吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不了解Node.js中的Cookie

来自分类Dev

在node.js示例中不了解First-class函数和csv模块事件的用法

来自分类Dev

在angularjs中访问Node.js cookie

来自分类Dev

cookie未在node.js中设置

来自分类Dev

在angularjs中访问Node.js cookie

来自分类Dev

Angularjs $ http在响应中似乎不了解“ Set-Cookie”

来自分类Dev

不了解Typescript中的重载

来自分类Dev

不了解界面中的方法

来自分类Dev

不了解OCaml中的符号

来自分类Dev

不了解Verilog中的类型

来自分类Dev

Node JS Express中的持久性cookie

来自分类Dev

如何从node.js中的请求模块获取cookie?

来自分类Dev

防止响应集cookie中的URL编码-Node.js

来自分类Dev

Node JS Express中的持久性cookie

来自分类Dev

从node.js中的cookie访问数组对象

来自分类Dev

通过javascript创建cookie并从Node.js中读取

来自分类Dev

如何在 node.js 中打印所有 cookie?

来自分类Dev

不了解Swift中的闭包示例

来自分类Dev

不了解SICP中的方案程序

来自分类Dev

不了解liunx内核中LWP的概念

来自分类Dev

不了解scanf中的Scanset组合

来自分类Dev

不了解Oracle中的regexp_like

来自分类Dev

不了解Django框架中的构造网址

来自分类Dev

我不了解JavaScript中的递归

来自分类Dev

了解Node.js中的简单流转换

来自分类Dev

了解node.js中对递归函数的承诺

来自分类Dev

了解Node.js中的V8堆信息

来自分类Dev

了解node.js中的http.get请求

来自分类Dev

了解尝试并捕获node.js