node.js博客项目开发手记

2020-06-17 07:07:46易采站长站整理

/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 ){ // 数据库中有该条记录