1:安装mongoos
npm install mongoose --save
2: 引入和使用
建一个用于公共连接 文件db.js
写入代码
var mongoose = require("mongoose");
var DB_URL = "mongodb://localhost:27017/1905";
 
mongoose.connect(DB_URL,{useNewUrlParser: true });
//状态的监听
mongoose.connection.on("connected",function () {
console.log("连接成功");
});
mongoose.connection.on("error", function (err) {
console.log(err);
});
mongoose.connection.on("disconnected", function () {
console.log("连接断开");
});
//导出方便其他地方使用
module.exports = mongoose;
 
 
2:建立一个文件user.js 作为userinfo表的数据模型 为后面做增删改查做示例和规范说明
因为普通的mongo无法对数据类型做规范 但是mongoose是可以的
 
var mongoose = require("./db.js");
var schema = mongoose.Schema; //模型生成器(表生成器)
 
//建立表 并且指定字段
var userSchema = new schema({
username: String,
userpwd: String,
userage: Number,
logindate: Date
});
 
//转成数据模型导出
module.exports = mongoose.model("userinfo", userSchema);
 
3:建立一个user对象 用来做对象的统一操作 方法集中化
var Userinfo = require("./userModel.js");
 
var user = {
//接受对象 然后写入数据库
register: function (obj) {
var p = new Promise(function (resolve, reject) {
var user = new Userinfo(obj);
user.save(function (err, res) {
if (err) {
// console.log(err);
reject(err);
} else {
// console.log(res)
resolve(res);
}
});
})
return p;
},
login: function () {
 
},
list: function () {
 
},
delById: function () {
 
}
};
 
module.exports = user;
 
 
4:前面页面构建注册页面 里面有jq代码如下
用户名:<input id="username" name="username"><br>
密码:<input id="userpwd" name="userpwd"><br>
年龄:<input id="userage" name="userage"><br>
<button id="btn" type="submit">注册button>
$("#btn").click(function () {
$.ajax({
type: "get",
url: "/users/registerUserinfo",
data: {
username: $("#username").val(),
userpwd: $("#userpwd").val(),
userage: $("#userage").val()
},
success: function (data) {
alert(data);
// window.location = "/users/list";
}
})
})
 
5:后台对应的接口/users/registerUserinfo写入如下代码
接受参数 返回结果
router.get("/registerUserinfo", function (req, res, next) {
res.writeHead(200, {
"Content-type": "text/html;charset=UTF-8"
});
var userinfo = {
username: req.query.username,
userpwd: req.query.userpwd,
userage: req.query.userage,
logindate: new Date()
}
user.register(userinfo).then(function (data) {
console.log(data);
res.write("成功");
res.end();
}, function (data) {
console.log(data);
res.write("失败");
res.end();
});
});
 
6
补充业务逻辑 用户名注册时 用户名应该检查是否存在
mongoos实现用户注册_数据类型
 
7:注册代码如下
user.findUserByName(req.query.username).then(function (num) {
if (num > 0) {
res.write("用户名已经存在");
res.end();
} else {
user.register(userinfo).then(function (data) {
console.log(data);
res.write("成功");
res.end();
}, function (data) {
console.log(data);
res.write("失败");
res.end();
});
}
}, function () { //如果用户存在
res.write("数据异常");
res.end();
})
 
8:密码进行加密处理
var username = req.query.username;
var userpwd = req.query.userpwd;
var userage = req.query.userage;
 
var md5 = crypto.createHash("md5"); //引入MD5加密模式
 
var userinfo = {
username: username,
userpwd: md5.update(userpwd).digest("hex"), //对密码进行加密
userage: userage,
logindate: new Date()
}
 
注册就完成了