文章修改后返回到当前分页

middleware

app/middleware/adminauth.js

获取上一页的url

ctx.state.prevPage = ctx.request.headers['referer'];  //获取上一页的url

view

app/view/admin/nav/edit.html
在edit的from中把上一页的url提交给后台
<input type="hidden" name="prevPage" value="<%= prevPage %>">

controller

app/controller/admin/nav.js
      async doEdit() {
        var _id=this.ctx.request.body._id;       
        var prevPage = this.ctx.request.body.prevPage;
        await this.ctx.model.Nav.updateOne({"_id":_id},this.ctx.request.body)
         await this.success(prevPage,'编辑导航成功');     

      } 

效果

clipboard.png

模糊搜索

view

app/view/admin/goods/index.html
                        <form role="form" class="form-inline" method="get" action="/admin/goods">
                            <div class="form-group">
                                <label for="name">输入关键词</label>
                                <input type="text" class="form-control" value="<%=keyword%>" id="name" name="keyword" placeholder="请输入名称">
                            </div>
                
                            <div class="form-group">
                                <button type="submit" class="btn btn-default">开始搜索</button>
                            </div>
                        </form>

controller

app/controller/admin/goods.js
  async index() { 
    var page=this.ctx.request.query.page || 1;
    var keyword=this.ctx.request.query.keyword;
    //注意
    var json={};
    if(keyword){
       json=Object.assign({"title":{$regex:new RegExp(keyword)}});
    }
    var pageSize=3;
    //获取当前数据表的总数量
    var totalNum=await this.ctx.model.Goods.find(json).count();
    var goodsResult=await this.ctx.model.Goods.find(json).skip((page-1)*pageSize).limit(pageSize);
     await this.ctx.render('admin/goods/index',{
       list:goodsResult,
       totalPages:Math.ceil(totalNum/pageSize),
       page:page,
       keyword:keyword
     });
 }

效果

clipboard.png


渣渣辉
1.3k 声望147 粉丝

引用和评论

0 条评论