1.path
作用:处理项目中的文件路径
解决问题:fs文件系统操作本地文件时,操作的文件路径以字符串的格式出现的,但是字符串路径经常会出现混淆,需要借助path模块处理绝对路径。
绝对路径:包含了根路径在内的完整路径。
主要函数:path.resolve()
作用:解析一个文件的绝对路径,配合全局变量__dirname使用
dirname
:描述当前文件所在文件夹的绝对路径
(1)初始化Dode项目
创建一个文件夹,命令行进入该文件夹,执行命令初始化这个文件夹为一个node项目
npm init -y
执行完成后会出现一个项目配置文件package.json
(2)path的使用
创建一个js文件测试:
// path,fs模块的使用
// 引入需要的模块
const fs = require('fs')
const path = require('path')
// 标准:在当前文件夹中,创建一个conf.txt文件
fs.writeFileSync(path.resolve(__dirname,"conf.txt"),"hello fs!")
2.md5
项目中包含很多的敏感数据,这些数据需要安全性防护,项目管理员也无权查看,为了防止项目管理者可以查看用户敏感数据,可以将用户敏感数据进行加密存储
(1)加密方式
数据加密的方式:单向加密,双向加密
单项加密:数据只能加密,不能解密
双项加密:数据可以加密,也可以解密
- 加密+解密:相同密钥,称为对称加密算法
- 加密+解密:不同密钥,非对称加密算法
(2)md5
单项散列加密算法是项目中常见的一种加密算法,可以用于用户密码加密等;
- 新用户注册时,可以将用户的密码进行解密存储
- 会员登录时,可以将登录用户的密码进行加密,比较加密后的数据是否一样
// md5加密模块的使用
// 引入加密模块
const md5 = require('md5')
// 1.基础加密
const password = '123'
const encrypt = md5(password)
console.log("密文:",encrypt)
// 2.加强加密:混淆码
const code = Math.random().toString(36).substr(2,8)
const password2 = "123"
const encrypt2 = md5(password2 + code)
console.log(`混淆码:${code},密文数据:${encrypt2}`)
3.文件上传
作用:文件上传支持,主要用于二进制文件的上传操作
router.post('/upload',async(req,res) => {
// 创建一个支持文件上传表单对象
const from = fromidable({multiples:true});
from.parse(res,(err,fields,files) => {
if(err) {
next(err);
return
}
res.json({fields,files});
});
})
网友评论