一、安装依赖
npm install mongoose --save
二、连接MongoDB
在app.js 文件中
// app.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/blog') //连接本地数据库blog
var db = mongoose.connection;
// 连接成功
db.on('open', function(){
console.log('MongoDB Connection Successed');
});
// 连接失败
db.on('error', function(){
console.log('MongoDB Connection Error');
});
三、创建Models 模块
在根路径下新建 models 文件夹。 添加 users.js
// models/users.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// 声明一个数据集 对象
var userSchema = new Schema({
username: {
type: String,
unique: true
},
password: {
type: String
},
createAt: {
type: Date,
default : Date.now()
}
});
// 将数据模型暴露出去,users即为集合名称
// 如创建的集合名称不带s。则会补上s
module.exports = mongoose.model('users', userSchema);
四、添加路由
在routes文件夹添加users.js文件
// routes/users.js
var express = require('express');
var router = express.Router();
var usersModels = require('../models/users');
// 获取所有用户列表
router.get('/userList', function (req, res) {
//查询users集合内所有用户列表
var userList = usersModels.find({}, function (err, data) {
if (err) throw err;
res.send(data)
});
});
// 这里的业务逻辑将写在 两个post 路由里
router.post('/login', function (req, res) {
var postData = {
username: req.body.username,
password: req.body.password
};
//查询users集合是否有此账号密码
usersModels.findOne({
username: postData.username,
password: postData.password
}, function (err, data) {
if(err) throw err;
if(data){
res.send('登录成功');
}else{
res.send('账号或密码错误')
}
} )
});
router.post('/register', function (req, res) {
// 获取用户提交的信息
var postData = {
username: req.body.username,
password: req.body.password
};
// 查询是否被注册
User.findOne({username: postData.username}, function (err, data) {
if (data) {
res.send('用户名已被注册');
} else {
// 保存到数据库
User.create(postData, function (err, data) {
if (err) throw err;
//请求/users/userList路由
res.redirect('/users/userList'); // 重定向到所用用户列表
res.send('注册成功');
})
}
});
});