nodejs系列:66.koa里的cookie-7

125 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

系列介绍

该系列主要是介绍一些nodejs相关的基础知识,没有什么特别难的知识点,都是一些比较基础知识点。大家学习起来,也会比较容易理解和接收。

这些知识点,也是以前自己学习nodejs的时候,学习过的知识点。有些知识点,可能是由于学习的时间比较久了,也有可能是平时工作中用到的机会比较少,也差不多快把它们都忘记掉了。现在把它们都写下来,写成文章,一方面是记录下自己以前学习的nodejs知识点,一方面也是复习巩固自己以前学习的nodejs知识点。不要学着学着,就把以前的知识点都忘光了。

环境安装

实现之前,你首先需要安装nodejs环境。因为我们写的代码需要在node环境上运行,如果你没有,那么文件会运行不了。

以下是nodejs的安装地址,如果你没有安装的话,可以先把它安装上。安装了可以忽略这一步,跳到下面一步。

nodejs安装

前言

在上一篇文章里nodejs系列:65.koa里的cookie-6,主要是介绍了koa里cookie的path属性。如果我们没有设置cookie的path属性,那么它会被默认设置为/。当然,我们也可以自己设置cookie的path属性。

接下来,我们要介绍一下在koa里怎么设置cookie的secure属性。

cookie

我们先看一下cookie的定义

Cookie 并不是它的原意“甜饼”的意思, 而是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序

这是百度百科上面的介绍,我们可以从里面提取出一些关键信息

  • 文本文件
  • 记录用户的个人信息功能

这两点,就是cookie的两大特点。特别是后面这一点,记录用户的个人信息。有时候,我们会把一些个人信息存放到cookie里,就正是利用了cookie这一特点来做的。

介绍

通过查阅资料,我们可以知道,koa针对cookie,已经做好了封装处理。在ctx(上下文对象)里,有一个cookies属性。koa把cookie相关的操作,都封装在这个cookies属性上。我们在koa里,通过该属性,即可操作cookie了。

cookies有一个set方法,使用该方法,就可以设置cookie了。set方法,前面两个参数是用来设置cookie的,第三个参数,是cookie的相关配置项设置。我们将利用该属性来设置cookie的相关配置项。

实现

创建文件

我们创建一个index.js文件,服务器端代码将在该文件里完成。

引入koa

引入koa,创建koa实例对象

const koa = require("koa")
const app = new koa()
注册中间件
app.use((ctx) => {
    ctx.cookies.set("name", "alin")
    ctx.body = "响应内容"
})

在koa实例对象上,注册一个中间件。这里只是做演示使用,所以注册一个简单的中间件即可。

同时,通过ctx(上下文对象)的cookies属性,来设置cookie。还设置了响应给客户端的响应内容。

监听端口
app.listen(3000, () => {
    console.log("服务器启动了")
})

在cmd里,用node运行index.js文件

0001.png

我们看到服务器启动了,在浏览器里访问服务器地址

0002.png

然后在控制台的Application页签里,查看cookie

0003.png

我们可以看到,cookie设置了。但是它的secure属性没有设置,因为在服务器端我们本来就没有设置secure属性。

小结

本小节,主要介绍了koa里cookie的secure属性。要在koa里设置cookie的secure属性有些麻烦,就不演示了。

前面已经介绍了使用原生nodejs设置cookie了,如果查看过以前的文章,相信你能很快速地掌握本小节内容。

最后,放上自己比较喜欢的一句诗句:

千淘万漉虽辛苦,吹尽狂沙始到金 - 唐 刘禹锡《浪淘沙》