这是我参与更文挑战的第20天,活动详情查看:更文挑战
上篇文章 Node系列学习之Redis(二) 学会在Node中使用Redis, 然后在登录中简单使用了一下,今天在处理一下博客相关的新建删除等路由。
登录验证函数
src/router/blog.js
// 统一的登录验证函数
const loginCheck = (req) => {
if(!req.session.username) {
return Promise.resolve(new ErrorModel('尚未登录'))
}
}
路由处理
blog.js
...
// 新建一篇博客
if (method == 'POST' && req.path == '/api/blog/new') {
// const data = newBlog(req.body)
// return new SuccessModel(data)
const loginCheckResult = loginCheck(req)
if(loginCheckResult) {
// 未登录
return loginCheckResult
}
// req.body.author = 'tmier' // 待开发登录完成后再改成真实数据
req.body.aythor = req.session.username
const result = newBlog(req.body)
return result.then(data => {
return new SuccessModel(data)
})
}
// 更新一篇博客
if (method == 'POST' && req.path == '/api/blog/update') {
const loginCheckResult = loginCheck(req)
if(loginCheckResult) {
// 未登录
return loginCheckResult
}
const result = updateBlog(id, req.body)
return result.then(val => {
if(val) {
return new SuccessModel()
}
return new ErrorModel('更新博客失败~')
})
}
// 删除一篇博客
if (method == 'POST' && req.path == '/api/blog/del') {
const loginCheckResult = loginCheck(req)
if(loginCheckResult) {
// 未登录
return loginCheckResult
}
let author = req.session.username
const result = delBlog(id,author)
return result.then(val => {
if(val) {
return new SuccessModel()
}
return new ErrorModel('删除博客失败~')
})
}
...
写到这里, 一个博客平台的基本功能接口基本就都有了, 可以暂时搭建下前台页面了, 改天有时间搞一个比较好看的登录UI试一下
目前完成的接口:
- 登录
- 查询博客列表
- 博客详情
- 新增博客
- 删除博客
- 更新博客
但是呢,只能说这只是最基础的,还有好多没完成:
- 使用JWT(token)进行登录鉴权, 接口目前还是使用的cookie-session
- 文件相关没有处理, 比如上传文件, 下载文件
- 相关查询接口没有实现分页, 比如博客查询等
- 目前还没有比较相对赏心悦目的前台页面
上面是我目前想到的几点, 应该还有不少,慢慢来吧~
下面是最近两天要做的:
- 比较好看的登录UI
- 富文本编辑器 或者 markdown编辑器, 还没想好用哪个, 看时间和精力了
- 查询接口实现分页
- Nginx与pm2配置,争取上服务器
先完成上面这些, 把自己的小博客上线, 做好之后再一步步进行优化。