/user 用户列表
分类管理
/category 分类列表
/category/add 分类添加
/category/edit 分类修改
/caterory/delete 分类删除
文章内容管理
/article nei内容列表
/article/add 内容添加
/article/edit 内容修改
/article/delete 内容删除
评论内容管理
/comment 评论列表
/comment/delete 评论删除
功能开发顺序
功能模块开发顺序
用户
栏目
内容
评论
编码顺序
通过Schema定义设计数据存储结构
功能逻辑
页面展示
连接数据库(mongoDB)
启动MongoDB服务端:
mongod –dbpath=G:datadb –port=27017
启动服务设置数据库的存储地址以及端口
var mongoose = require('mongoose');
// 数据库链接
mongoose.connect("mongodb://localhost:27017/blog",(err) => {
if(err){
console.log("数据库连接失败");
}else{
console.log("数据库连接成功");
// 启动服务器,监听端口
app.listen(3000,(req,res,next) => {
console.log("app is running at port 3000");
});
}
});定义数据表结构和模型
对于用户数据表(users.js)在schema文件夹下:
var mongoose = require('mongoose');
module.exports = new mongoose.Schema({
// 用户名
username:String,
// 密码
password:String
});在models目录下创建user.js模型类
var mongoose = require('mongoose');
var userSchema = require('../schemas/users');
module.exports = mongoose.model('User',userSchema);处理用户注册
前端通过ajax提交用户名和密码
url: /api/register
后端对前端提交(POST)的数据解析
var bodyParser = require('body-parser');
// bodyParser 配置
// 通过使用这一方法,可以为req对象添加一个body属性
app.use( bodyParser.urlencoded({extended:true}));// 在api模块中:
// 1.可以定义一个中间件,来统一返回格式
var responseData;
router.use( function(req,res,next){ // path默认为'/',当访问该目录时这个中间件被调用
responseData = {
code:0,
message:''
};
next();
});
router.post('/register',(req,res,next) => {
console.log(req.body);
// 去判断用户名、密码是否合法
// 判断是否用户名已经被注册
// 通过 res.json(responseData) 给客户端返回json数据
// 查询数据库
User.findOne({ // 返回一个promise对象
username: username
}).then(function( userInfo ) {
if( userInfo ){ // 数据库中有该条记录









