程序员的资源宝库

网站首页 > gitee 正文

简版的电商项目学习——第三步:数据库创建,注册功能实现以及用户密码加密

sanyeah 2024-04-01 11:22:24 gitee 6 ℃ 0 评论

一、简介

  拿到数据之后,在主目录创建 db 目录存放数据,在数据库里建一个存放数据的表,然后再将在页面拿到数据去数据库里进行查询,就需要连接数据库中的表,并且将在页面获取到的数据作为查询条件去表里查询数据,这就涉及到 MVC 的架构,现在已经有了 view —— V, controller —— C,再创建 modal —— M 目录存放对数据库的操作

 1、让 mongo 在项目里运行:

mongod --dbpath ./db     //如果是当前目录就是 ./ 

 2、在 modal 文件里操作数据:

  安装:mongoose

cnpm install mongoose --save

  创建数据库:

var mongoose = require('mongoose');

//创建连接数据库
mongoose.connect('mongodb://localhost:27017/shopping');
//得到链接
var connection = mongoose.connection;

//连接数据库失败
connection.on('error',function (err) {
   if(err){
      console.log('连接失败',err)
   }
})

//连接成功
connection.on('open',function (err,data) {
   if(err){
      console.log('mongodb connection error' , err);
   }else{
      console.log('mongodb connection success');//连接成功输出
   }
})

//导出数据库
module.exports = mongoose;

  3、有了数据库之后,就要创建一个用于存放管理员的表 admin

  创建表

var mongoose = require('mongoose');

//创建数据骨架
var adminSchema = new mongoose.Schema({
   username:String,
   password:String,
   type:Number
})

//创建模型 userModel ==》 user表
var adminModel = mongoose.model('admin',adminSchema);

/**
 * 执行注册用户数据写入
 * @type {{login}}
 * @params object 用户名 密码
 */
function reg(params) {
   adminModel.create(params,(err,data)=>{
      if(err){

      }else{
         console.log(data);
      }
   })
}

module.exports = {
   reg
};

  创建好之后,因为是要存储管理员的数据,所以要在注册操作中调用,从而把用户的数据存到数据表中。

var mongoose = require('./connect.js');

//创建数据骨架
var adminSchema = new mongoose.Schema({
   username:String,
   password:String,
   type:Number
})

//创建模型 adminModel ==》 admin表
var adminModel = mongoose.model('admin',adminSchema);

/**
 * 执行注册用户数据写入
 * @type {{login}}
 * @params object 用户名 密码
 */
function reg(params) {
   adminModel.create(params,(err,data)=>{ //有了要提交的数据之后就要调用,添加注册用户信息的 reg 方法。
      if(err){
         console.log('err');
      }else{
         console.log(data);
      }
   })
};

module.exports = {
   reg
};

然后重启控制台,注册功能运行就 OK 了!!!

 

  现在注册功能已经实现,但是密码确是明文状态,所以加密必不可少!

 4、密码加密 —— crypto

   下载依赖模块:

cnpm install crypto

  因为加密不只是在注册处会用,所以把他封装成一个小方法,然后在使用的时候调用就好了。首先秉着整齐,功能操作分开的理念,创建一个 utils 文件存放一些封装的方法。

  密码加密方法:

var crypto = require('crypto');

function md5(password) {
   var md5 = crypto.createHash('md5');//crypto模块功能是加密并生成各种散列,此处所示为MD5方式加密
   var end_paw = md5.update(password).digest('hex');
   return end_paw
}
module.exports = {
   md5
}

  现在要对用户密码进行加密,所以现在在数据加入数据库之前实行加密操作:

 

//先引入加密方法模块
var utils = require('../utils/utils.js');

//在regPost提交数据前引入
function regPost(req,res,next) {
   var postData = {
      username:req.body.username,
      password:utils.md5(req.body.password)//调用加密方法
   }
   adminModel.reg(postData)
}

  然后再次重启控制台,就好啦!!!

 

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表