一點一點整理

關(guān)于表單驗證,jQuery提供了一個serializeArray方法
//這里封裝一個函數(shù)
function serializeToJson(form){
  var res = {};
  //這里的數(shù)據(jù)格式:[{name:'email', value:'123@123.123'}, ....]
  var f = $('#logForm').serializeArray();
  f.foreach(element => {
    result[element.name] = element.value;
  });
  //返回的數(shù)據(jù)格式:{email: "123@123.123", password: "123"}
  return result;
}
解析請求參數(shù)的body-paser

在項目中是搭配express框架使用。

const express = require('express');
const app = require('body-parser');
const bodyParser = require('body-parser');
//然后在中間件中攔截所有請求,把請求交給body-parser對象下面的url-encoded方法
//extended:false 表示方法內(nèi)部會使用系統(tǒng)模塊queryString去處理參數(shù)格式
app.use(bodyParser.urlencoded({ extended: false }));

設(shè)置完畢之后,在路由中可以如下獲取參數(shù)了

ad.post('/path', (req, res)=>{
  //body-parser會再req下添加一個body屬性,里面就是參數(shù)的值
  let mData = req.body;
});
nodejs中的cookie與session
實現(xiàn)session的express-session(express官方提供)

也是一個express框架的中間件函數(shù),因此也用app.use中間件攔截所有請求,將請求教給session方法去處理,方法內(nèi)部:
1.會為請求對象下面添加一個叫session的屬性, 這個屬性的值是一個對象,對象可以在用戶登錄成功后保存用戶信息。
2.方法內(nèi)部會在我們向session對象中存儲數(shù)據(jù)時生成sessionid, sessionid是我們當(dāng)前存儲的數(shù)據(jù)的唯一標(biāo)識,
然后將sessionid存儲在客戶端的cookie中。
3.當(dāng)客戶再一次訪問服務(wù)器端的時候,方法會拿到客戶端傳遞過來的cookie并拿出sessionid,在session中根據(jù)sessionid找到用戶信息。
注意:當(dāng)網(wǎng)站服務(wù)器重啟的時候,服務(wù)器端的session對象就會失效。

const session = require('express-session');
//secret key是加密cookie信息的,當(dāng)我們向客戶端存儲數(shù)據(jù)時需要對數(shù)據(jù)加密
//服務(wù)器端接收到cookie時,需要這個秘鑰用來解密
app.use(session({ 
  secret: 'key' ,
  saveUninitialized: false,    //未初始化是不保存
  cookie:{
    maxAge: 24* 60 * 60 * 1000;    //設(shè)置cookie有效期
  }
}));
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容