使用nuxt,express,mysql,nginx创建个人博客系列-11

483
2020-01-24 18:37
10 个月前

保存文章类型

首先我们需要一个进到文章详情页面,然后通过提交按钮,修改或新增文章类型,判断是否是新增只需要传入id=0即可,下面我们首先添加路由


路由目录:server/admin/routers/categorys.js

//文章类型查看路由,根据id去渲染categorys_edit.html
router.get('/:id',async (req,res,next)=>{
  let id = req.params['id'];
  let name =""
  //判断是否为0,不为0则需要去数据库查找出已经保存的内容
  if(id){
    let myConnect = await mysql.getConnect();
    let sql = `select * from category where id = ${id}`;
    let result = await mysql.query(myConnect,sql);
    await mysql.release(myConnect);
    if(result.length){
      name = result[0]['name']
    }
  }
  return res.render('categorys_edit', {
    module_dir: config.admin.route,
    id,
    name
  })
})
router.post('/edit',async (req,res,next)=>{
  let {name,id} = req.body;
  let userid = req.session.user.id
  if(userid){
    let myConnect = await mysql.getConnect();
    let sql='';
    let params = null;
    if(id==0){
      sql = `insert into category(user_id,name) values (?)`;
      params = [userid,name];
    }else{
      sql = `UPDATE category SET name = '${name}' WHERE id = ${id}`;
    }
    let result = await mysql.query(myConnect,sql,params);
    console.log(result)
    await mysql.release(myConnect);
    if(result.affectedRows === 1){
      return res.send(util.resSuccess({
        data:result
      }))
    }
    return res.send(util.resError({
      code:'user_id',
      msg:"插入错误"
    }))
  }else{
    return res.send(util.resError({
      code:'user_id',
      msg:"请登录"
    }))
  }

})

下面我们添加categorys_edit.html 目录:server/admin/views/categorys_edit.html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <% include header.ejs%>
    <title>categorys_edit</title>
</head>

<body>
  <% include nav.ejs%>
    <div class="container mt-3">
      <div class="container-fluid">
        <div class="row">
          <div class="col-12">
            <div class="row">
              <div class="col-md-12 mb-3">
                <label for="firstName">分类名称</label>
                <input type="text" class="form-control" id="firstName" value="<%= name%>" placeholder="请输入分类名称">
                <div class="invalid-feedback">
                  Valid first name is required.
                </div>
              </div>
              <div class="col-md-12 mb-3">
                <button type="button" name="" id="btn-submit" class="btn btn-dark btn-lg btn-block">提交</button>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
</body>
<script>
    var module_dir = "<%= module_dir%>";
    var id = "<%= id%>"
 </script>
<script>
  $(function(){
    $('#btn-submit').on('click',function(){
      var name = $('#firstName').val()
      if(name){
        $axios.post(`${module_dir}/categorys/edit`,{
            name,
            id
          }).then(resp=>{
            if(resp.status==1){
              window.location=`${module_dir}/categorys` // 保存成功后跳转到类型列表页
            }
          })
      }else{
        alert('请输入分类名称')
      }

    })
  })
</script>

</html>

你会看到这样的页面
categorys_edit.html


上一篇-使用nuxt,express,mysql,nginx创建个人博客系列-10
下一篇-使用nuxt,express,mysql,nginx创建个人博客系列-12