前端 ---- 博客项目

1.serializeArray()的用法
获取去表单内容
//serializeArray()获取表单中的内容但是结果
[{name:'email',value:'122@qq.com'}]
[{name:'password',value:'123456'}]  很弱智

//变成Json对象
function serializeArrayToJson(form){
	var result = {};
	var f = $(this).serializeArray();
	f.forEach(function(itme)){
		result[item.name]=item.value;
	}
	return result;
}

这样就变成{emal:'122@qq.com',password:'123456'}



2.密码加密 bcrypt
	1.使用哈希算法加密的单程加密方式,只能从原始密码加密成特殊密码,不能从特殊密码解密成原始密码
	2.但是可以通过比对自己之前加密过的数据来判断密码(暴力破解)
	3.所以需要在加密的密码中加入随机字符串(salt 盐?)来增加密码被破解的难度
	4.生成随机字符串和对密码加密都是异步函数
	
3.cookie和session
session 如果服务器重启了就失效了


4.Joi
如果写了一大堆规则 没有require,那么传入空的东西也会直接通过
但是传入的是这个Joi.validate({},schema),而不是这个Joi.validate({name:''},schema)

	//string的min是长度
	name : Joi.string().min(2).max(5).error(new Error('name有问题')),
	//number的min是数值
	birth:Joi.number().min(1900).max(202)

--------------------------------Joi.validate is a not function解决办法·-------------------------------------------
在npm install joi的时候下载的是最新版本+ joi@17.1.1,对于一些API高版本会舍弃从而出现报错。
	1.卸载joi
	npm uninstall joi
	2.下载14.3.1
	npm install @14.3.1
	
5.JSON.stringify() 可以将对象转换成字符串类型
JSON.parse(err);  可以将字符串转换成对象


6.出现莫名其妙的错误,什么都没错但就是不行,那就把代码重新打一下
7.User.countDocuments(查询条件)  查询总数, Math.ceil(count/pagesize)向上取整
8.select选项中,只要option里有selected就是被选中,而两个被选中就会显示后面那个
所以selected = 'selected':''是错的,因为左边已经有selected了 不管右边是什么都会被选中
<select class="form-control" name= 'role' >
	<option  selected="{{use.role == 'normal'?'selected':''}}">普通用户</option>
	<option  selected="{{use.role == 'admin'? 'selected':''}}">超级管理员</option>
</select>
应该是这样
<select class="form-control" name= 'role' >
	<option {{use.role == 'normal'?'selected':''}}>普通用户</option>
	<option {{use.role == 'admin'? 'selected':''}}">超级管理员</option>
</select>
posted @ 2020-09-21 10:17  otome  阅读(200)  评论(0编辑  收藏  举报