一点一点整理

2019-11-11  本文已影响0人  为什么要简称
关于表单验证,jQuery提供了一个serializeArray方法
//这里封装一个函数
function serializeToJson(form){
  var res = {};
  //这里的数据格式:[{name:'email', value:'123@123.123'}, ....]
  var f = $('#logForm').serializeArray();
  f.foreach(element => {
    result[element.name] = element.value;
  });
  //返回的数据格式:{email: "123@123.123", password: "123"}
  return result;
}
解析请求参数的body-paser

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

const express = require('express');
const app = require('body-parser');
const bodyParser = require('body-parser');
//然后在中间件中拦截所有请求,把请求交给body-parser对象下面的url-encoded方法
//extended:false 表示方法内部会使用系统模块queryString去处理参数格式
app.use(bodyParser.urlencoded({ extended: false }));

设置完毕之后,在路由中可以如下获取参数了

ad.post('/path', (req, res)=>{
  //body-parser会再req下添加一个body属性,里面就是参数的值
  let mData = req.body;
});
nodejs中的cookie与session
实现session的express-session(express官方提供)

也是一个express框架的中间件函数,因此也用app.use中间件拦截所有请求,将请求教给session方法去处理,方法内部:
1.会为请求对象下面添加一个叫session的属性, 这个属性的值是一个对象,对象可以在用户登录成功后保存用户信息。
2.方法内部会在我们向session对象中存储数据时生成sessionid, sessionid是我们当前存储的数据的唯一标识,
然后将sessionid存储在客户端的cookie中。
3.当客户再一次访问服务器端的时候,方法会拿到客户端传递过来的cookie并拿出sessionid,在session中根据sessionid找到用户信息。
注意:当网站服务器重启的时候,服务器端的session对象就会失效。

const session = require('express-session');
//secret key是加密cookie信息的,当我们向客户端存储数据时需要对数据加密
//服务器端接收到cookie时,需要这个秘钥用来解密
app.use(session({ 
  secret: 'key' ,
  saveUninitialized: false,    //未初始化是不保存
  cookie:{
    maxAge: 24* 60 * 60 * 1000;    //设置cookie有效期
  }
}));
上一篇 下一篇

猜你喜欢

热点阅读