成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

express cookie-parser 小書

senntyou / 1107人閱讀

摘要:簡(jiǎn)介是最常使用的中間件實(shí)際上雖然他名義上是一個(gè)中間件但是實(shí)際上已經(jīng)儼然成為了的一個(gè)不可或缺的部分在的文檔中操作的部分就一個(gè)方法和一個(gè)屬性但是實(shí)際上如果你不使用中間件這些方法是根本就不存在的先從操作說起如果有一個(gè)純凈的像這樣我們?nèi)绾尾倏v顯

簡(jiǎn)介

cookie-parser是Express最常使用的中間件,實(shí)際上雖然他名義上是一個(gè)中間件但是實(shí)際上已經(jīng)儼然成為了Express的一個(gè)不可或缺的部分.

在Express4的文檔中,操作Cookie的部分就一個(gè)方法和一個(gè)屬性.但是實(shí)際上如果你不使用cookie-parser中間件這些方法是根本就不存在的.

先從Express操作cookie說起

如果有一個(gè)純凈的Express,像這樣:

const app = new express();
app.get("/login", (request, response) => {

    response.send("hello express");

});
app.listen(8888, "127.0.0.1");

我們?nèi)绾尾倏vcookie?,顯然只能在requestresponse中操縱.

express在request提供了:

cookies {Object}

response提供了:

res.cookie(name, value [, options])

簡(jiǎn)單來講一個(gè)用于獲取另外一個(gè)用于寫入.

但是一切的前提就是你得使用cookie-parser中間件的前提下才可以擁有這個(gè)屬性和方法,之前我就被坑了.

在上面的極簡(jiǎn)實(shí)例中我們得使用:

app.get("/login", (request, response) => {

    console.log(request.headers.cookie);
    response.send("hello express");

});

才可以獲取沒有使用cookie-parser中間件時(shí)候的cookie.

cookie-parser的具體功能

已鍵值對(duì)的形式的獲取cookie

使用簡(jiǎn)單的方法設(shè)置cookie

對(duì)于cookie進(jìn)行簽名

調(diào)用參數(shù)

cookie-parser在初始化的時(shí)候和寫入cookie的時(shí)候允許傳入?yún)?shù).

在初始化的時(shí)候允許傳入:

參數(shù) 類型 描述
secret string string[] 用于簽名cookie的字符串
options object 選項(xiàng)基于cookie模塊
cookie方法參數(shù)

基本格式如下res.cookie(name, value [, options]).

其中第一個(gè)參數(shù)是name是cookie的鍵,而value是鍵對(duì)應(yīng)的的值.

options有如下的選項(xiàng),基本都是cookie在HttpHeader中的參數(shù):

參數(shù) 類型 描述
domain string 描述cookie作用的主機(jī)
path stirng 只有在匹配成功的地址才會(huì)發(fā)送cookie默認(rèn) /
encode function 用于cookie的編碼默認(rèn)是encodeURIComponent
expires date 使用GMT格式的時(shí)間來指定過期時(shí)間
maxAge number 指定多好毫秒后cookie失效
httpOnly boolean 設(shè)置后客戶端無法訪問cookie的內(nèi)容
secure boolean 標(biāo)記這個(gè)cookie只有在https協(xié)議下起作用
signed boolean 對(duì)于cookie進(jìn)行簽名
sameSite boolean 阻止cookie在跨站請(qǐng)求的時(shí)候發(fā)送

在MDN中有cookie的詳細(xì)解釋,上面除了signed外都有介紹.

https://developer.mozilla.org...
使用示例

基本示例:

const express = require("express");
const cookieParse = require("cookie-parser");

const app = new express();

app.use(cookieParse());

app.get("/login", (request, response) => {

    // 以鍵值對(duì)的形式獲取所有的cookie
    console.log(reqeust.cookies);
    
    // 寫入cookie
    response.cookie("key", "value");

    response.send("hello express");

});

app.listen(8888, "127.0.0.1");

使用cookie簽名:

const express = require("express");
const cookieParse = require("cookie-parser");

const app = new express();

// 傳入一個(gè)字符串對(duì)cookie進(jìn)行簽名
app.use(cookieParse("hello world"));

app.get("/login", (request, response) => {

    // 獲取沒有簽名的cookie
    console.log(request.cookies);
    // 獲取簽名的cookie
    console.log(request.signedCookies);
    
    // 寫入簽名cookie
    response.cookie("signed", "true", {maxAge: 100000,signed:true});
    
    // 寫入未簽名cookie
    response.cookie("key", "value");
    
    
    response.send("hello express");

});

app.listen(8888, "127.0.0.1");

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99442.html

相關(guān)文章

  • express express-session 小書

    摘要:簡(jiǎn)介是中的一個(gè)處理的中間件可以說是中最常見的中間件之一了由于會(huì)話管理依賴的使用所以它的中有很多用于控制的部分總的來說有如下的特點(diǎn)管理基本功能簽名可替換持久儲(chǔ)存模塊本文中使用的版本為安裝引入使用使用簽名這個(gè)屬性是必須的具體配置和 簡(jiǎn)介 express-session是express中的一個(gè)處理session的中間件,可以說是express中最常見的中間件之一了. 由于會(huì)話管理依賴cook...

    Scorpion 評(píng)論0 收藏0
  • express中cookie的使用和cookie-parser的解讀

    摘要:最近在研究,學(xué)著使用,開始不會(huì)用,就百度了一下,沒有百度到特別完整的解答。查閱了的,綜合了網(wǎng)友的博客,解讀了的源碼,以及使用和驗(yàn)證,終于明白了中的使用。默認(rèn)為網(wǎng)站域名過期時(shí)間,類型為。使用插件,后續(xù)代碼直接使用或者即可 最近在研究express,學(xué)著使用cookie,開始不會(huì)用,就百度了一下,沒有百度到特別完整的解答。查閱了express的API,綜合了網(wǎng)友的博客,解讀了cookie-...

    CODING 評(píng)論0 收藏0
  • node中的session

    摘要:當(dāng)會(huì)話過期或被放棄后,服務(wù)器將終止該會(huì)話。原來中間件生成的是一個(gè)對(duì)象,里面包含了信息。這個(gè)有一個(gè)過期時(shí)間,比如,上面代碼中設(shè)置的是小時(shí)。也就是說,小時(shí)后,這個(gè)在瀏覽器中會(huì)自動(dòng)消失。 前言 在上一篇中node中的cookie,對(duì)cookie進(jìn)行了相關(guān)介紹,本篇將繼續(xù)前行,對(duì)session進(jìn)行說明。 session是什么 session不就是會(huì)話嘛,那什么是會(huì)話呢?會(huì)話是一個(gè)比連接粒度更大...

    yankeys 評(píng)論0 收藏0
  • node中的session

    摘要:當(dāng)會(huì)話過期或被放棄后,服務(wù)器將終止該會(huì)話。原來中間件生成的是一個(gè)對(duì)象,里面包含了信息。這個(gè)有一個(gè)過期時(shí)間,比如,上面代碼中設(shè)置的是小時(shí)。也就是說,小時(shí)后,這個(gè)在瀏覽器中會(huì)自動(dòng)消失。 前言 在上一篇中node中的cookie,對(duì)cookie進(jìn)行了相關(guān)介紹,本篇將繼續(xù)前行,對(duì)session進(jìn)行說明。 session是什么 session不就是會(huì)話嘛,那什么是會(huì)話呢?會(huì)話是一個(gè)比連接粒度更大...

    fredshare 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<