cookie-web (關於cookie操做的封裝)

前言

安利一個自家封裝的基於web的cookie庫,主要用途是對瀏覽器本地cookie的進行一些基本操做,包括:增、刪、查
目前項目纔剛開始起步,也但願這個項目能作得長久。
歡迎你們加入這個項目,同時也歡迎你們提issue,謝謝您的 Star
github 地址:https://github.com/justwiner/...
npm 地址:https://www.npmjs.com/package...git

cookie-web

NPM VersionNPM VersionNPM Version

讓cookie更簡單!github

安裝

npm install cookie-web
yarn add cookie-web

方法

const cookie = require('cookie-web')
import cookie from 'cookie-web'

void cookie.setOne (key, val, options = {})

經過key-val(鍵值對)添加一個cookie
固然,這兒還能夠添加其餘設置項web

options = {  
    expires,  // 過時時間
    path,  // 容許訪問的路由
    domain,  // 容許訪問的主機名
    secure  // 加密傳輸 (true / false)
}

使用它:npm

cookie.setOne('myCookie', 'test')
cookie.setOne(2, 'test') // TypeError: key must be a string !
cookie.setOne('test') // TypeError: key can't be undefined !
cookie.setOne('myCookie', 2) // TypeError: val must be a string !
cookie.setOne('myCookie') // TypeError: val can't be undefined !
cookie.setOne('myCookie', 'test', {
    expires: 1 * 1000 * 60, // 一分鐘
})
cookie.setOne('myCookie', 'test', {
    expires: 1 * 1000 * 60 * 60, // 一小時
    path: '/', // 也能夠是: /someRoute
    domain: '.google.com',
    secure: true
})

void cookie.set(obj)

傳入一個對象數組,添加多個cookie, 當傳入的是一個對象時,則添加一個cookie
[{key, val, options}] {key, val, options}數組

cookie.set([{
      key: 'cookie_1',
      val: 'value_1'
    },
    {
      key: 'cookie_2',
      val: 'value_2',
      options: {
        path: '/home'
      }
    },
    {
      key: 'cookie_3',
      val: 'value_3',
      options: {
        path: '/home',
        expires: 1 * 1000 * 60 * 60,
        secure: true
      }
    },
    {
      key: 'cookie_4',
      val:'value_4',
      options: {
        path: '/menu',
        expires: 1 * 1000 * 60 * 60
      }
    }])
    
cookie.set({
      key: 'cookie_1',
      val: 'value_1'
    })

string cookie.getOne(key)

經過鍵值名獲取一個cookie, 當不傳入參數時,獲取全部可獲取的cookie
use it !瀏覽器

cookie.setOne('myCookie_1', 'hello')
cookie.setOne('myCookie_2', 'my-cookie')

cookie.getOne('myCookie_1') // 'hello'
cookie.getOne('myCookie_1', true) // {'myCookie_1': 'hello'}
cookie.getOne('myOtherCookie') // undefined
cookie.getOne(true) // { myCookie_1: 'hello', myCookie_2: 'my-cookie' }
cookie.getOne() // ['hello', 'my-cookie']

cookie.get(keys)

從字符串數組或字符串中獲取多個cookie,並選擇返回結果的方式(true: JSON鍵值對格式數組; false: 只包含值的數組cookie

cookie.set([{
      key: 'cookie_1',
      val: 'value_1'
    },
    {
      key: 'cookie_2',
      val: 'value_2',
    }])

cookie.get(['cookie_1', 'cookie_2'], true) // [{'cookie_1': 'value_1'}, {'cookie_2': 'value_2'}]
cookie.get() // ['value_1', 'value_2']
cookie.get('cookie_1', true) // {'cookie_1', 'value_1'}
cookie.get('cookie_1') // 'value_1'

void cookie.deleteOne(key, options)

經過鍵值名刪除一個cookie
固然,在建立以前, 若是你設置了路徑/域等屬性
你應該傳入建立時的設置信息(路徑/域等屬性),它必須與你建立它同樣!可是隻須要pathdomain就行dom

options = {
    path,
    domain
}

use it !ui

cookie.setOne('myCookie_1', 'hello')
cookie.setOne('myCookie_2', 'my-cookie')
cookie.getOne() // ['hello', 'my-cookie']
cookie.deleteOne('myCookie_1')
cookie.getOne() // ['my-cookie']
cookie.deleteOne()
cookie.getOne() // undefined

可是當你在建立它以前設置 path / domain 屬性時,刪除時,你必須使用相同的路徑來正確刪除它!google

cookie.setOne('myCookie_1', 'hello', {
    path: '/home',
    domain: '.google.com'
})
cookie.deleteOne('myCookie_1', {
    path: '/home',
    domain: '.google.com'
}) // delete 'myCookie_1'
cookie.deleteOne(undefined, {
    path: '/home',
    domain: '.google.com'
}) // 刪除全部 path: '/home' , domain: '.google.com'

void cookie.delete(keys)

從字符串數組中刪除多個cookie,或從字符串刪除單個cookie

cookie.set([{
      key: 'cookie_1',
      val: 'value_1'
    },
    {
      key: 'cookie_2',
      val: 'value_2'
    },
    {
      key: 'cookie_3',
      val: 'value_3',
      options: {
        path: '/home'
      }
    },
    {
      key: 'cookie_4',
      val:'value_4'
    }])


cookie.delete([
    'cookie_1',
    'cookie_2',
    {
      key: 'cookie_3',
      options: {
        path: '/home'
      }
    }])
cookie.delete('cookie_4')
cookie.delete() // 刪除全部 path: '/'

Thanks !

github 地址:https://github.com/justwiner/... 您的star是我最大的鼓勵 ^_^
npm 地址:https://www.npmjs.com/package...也但願大佬們糾正個人錯誤

相關文章
相關標籤/搜索