Node系列学习之登录优化

124 阅读2分钟

这是我参与更文挑战的第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配置,争取上服务器

先完成上面这些, 把自己的小博客上线, 做好之后再一步步进行优化。