一、简介
拿到数据之后,在主目录创建 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) }
然后再次重启控制台,就好啦!!!