实例化Schema,然后调用save方法:
当checkUserPasswd为true时代表帐号密码验证没问题,接下来先将刚才从mongoDB查询到的用户信息转换为JSON对象
并把userObj中不想返给前端的敏感数据清理掉
model文件夹中定义model,然后在api文件中定义接口处理方法,routes文件中定义接口路径,挂载api中定义的方法,并在router文件夹的routes.js中整合路由
注册接口的逻辑是先查询数据库验证name和username是否有重复的,如果没有重复的,则通过new User 来生成Schema实例,然后将实例信息保存到数据库中,需要注意的一点是,密码因为是敏感数据,所以在存库前需要利用加密插件bcrypt进行处理,存储完数据后返回相应状态和数据给前端
// 允许最大体积为5M // 监听文件上传错误
项目中自己定义了一个公共的递归查询并创建文件夹的方法dirExists,
其实递归创建文件夹的功能可以通过make-dir 这个库来进行快捷的实现(相当于我们自己封装的dirExists方法),但是在本项目中原生实现了
进行完上面的操作后,接下来获取到图片的完整名称ext,定义好图片的储存路径dir,利用uuid生成一个不重复的数字,然后将ext和dir组合成文件的唯一的完整路径+名称
8.项目运行异常问题处理
1.为什么上传的图片大一点就不行了?目前10kb以内可以,大于10kb不可以,无法触发接口
2.上传图片之后拿到的图片无法正常显示,访问返回401
3.踩坑:安装以来的时候bcrypt插件因为需要以来python,所以需要先手动安装python,然后手动npm install bcrypt 单独安装这个插件才行。