文件上传的路径处理及加密操作

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});
    });
})
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容