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