12th Day

代码改进

  • 将代码的路由都加上api,统一api,该api下都是处理数据的路由
  • 由GET发送的请求都会将该form的内容作为参数加到url中
  • 在数据库找到的结果都会以对象的形式返回到一个数组里,所以,对数据进行指定的搜索,想要输出就传入result[0].xxx
  • 由于在查询数据库的时候如果没有这个属性的名字,返回的是undefined,无法输入,所以这时候需要过滤掉,Object.keys(result).length === 0,统计result对象的个数,如果是0就是undefined

分页

1
2
3
4
5
<form action="http://localhost:3000/api/list" method="GET">
<input type="text" name="page">
<input type="submit" value="page">
</form>

在page框中输入的页数会作为参数添加到http://localhost:3000/api/list中,如:http://localhost:3000/api/list?page=1

1
2
3
4
5
6
7
8
9
10
11
12
var page;
if ("page" in req.query){
page = parseInt(req.query.page);
if (Number.isNaN(page)){
page = 0;
} else {
page = page - 1;
}
} else {
page = 0;
}

> 这样做就可以直接在地址栏输入地址的时候加参数,这里可以得到带的参数

加密

简单的MD5加密

1
2
3
4
5
6
7
8
9
10
11
12
var crypto = require('crypto');
function cryptPwd(password) {
var md5 = crypto.createHash('md5');
return md5.update(password).digest('hex');
}
var password = '123456';
var cryptedPassword = cryptPwd(password);
console.log(cryptedPassword);
// 输出:e10adc3949ba59abbe56e057f20f883e

MD5随机盐值加密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var crypto = require('crypto');
function getRandomSalt(){
return Math.random().toString().slice(2, 5);
}
//获得一个随机数,去第2,3,4位数
function cryptPwd(password, salt) {
// 密码“加盐”
var saltPassword = password + ':' + salt;
console.log('原始密码:%s', password);
console.log('加盐后的密码:%s', saltPassword);
// 加盐密码的md5值
var md5 = crypto.createHash('md5');
var result = md5.update(saltPassword).digest('hex');
console.log('加盐密码的md5值:%s', result);
}
var password = '123456';
cryptPwd('123456', getRandomSalt());
// 输出:
// 原始密码:123456
// 加盐后的密码:123456:498
// 加盐密码的md5值:af3b7d32cc2a254a6bf1ebdcfd700115
cryptPwd('123456', getRandomSalt());
// 输出:
// 原始密码:123456
// 加盐后的密码:123456:287
// 加盐密码的md5值:65d7dd044c2db64c5e658d947578d759