Node之cookie&session

#### cookie

- 特點

  - 1.兼容所有瀏覽器

  - 2.存放的內容少,4kb,瀏覽器會限制一個站點最多可以存放20個cookie

  - 3.不安全,重要信息最好不要存放在cookie上

  - 4.cookie容易被安全衛士等軟件清除

  - 5.有過期時間

  - 6.不是嚴格的本地存儲,獲取cookie時,保證服務器和客戶端保持連接,讀取cookie也要經過HTTP處理

- cookie的應用

```

   let http=require('http');
   let url=require('url');
   let querystring=require('querystring')
   http.createServer(function(req,res){
       let {pathname}=url.parse(req.url,true);
       res.setHeader('Content-type','text/html;charset=utf-8')
       //當客戶端訪問的路徑是/write的話就表示寫cookie
      if (pathname=='/visit'){
            let cookie=req.headers.cookie;
            let visit=1;
            if (cookie){
                 //cookie並不是真正的查詢字符串,所以不同字段的風格符是; ,而不是&,所以在解析的時候要注意傳入字段分隔符
                 let cookieObj=querystring.parse(cookie,'; ')
                if(cookieObj.visit){
                     // + 字符串轉數字的意思
                     visit=(isNaN(+cookieObj.visit)?0:parseInt(+cookieObj.visit))+1
                 }
              }
             res.setHeader('Set-Cookie',`visit=${visit}`)
             res.end(`顧客歡迎你第${visit}次來`)
    }else{
             res.end('404')
    }
}).listen(8081);

```

> queryString擴展

> 原理:利用&把字段分開,再用等號把鍵和值分開

> 參數:參數1-》要分隔的內容  參數2:以什麼進行分割

> 有兩個方法:querystring.parse()   querysting.stringfy()

```

 let str='id=1&age=3';
let querystring=require('querystring')
let obj=querystring.parse(str,'&’)//&是默認的分隔符

```

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章