egg(59)--商品类型的curd

本文详细解析了一个商品类型管理模块的实现,包括模型定义、路由设置、控制器逻辑以及视图展示,展示了如何通过Mongoose进行数据库操作,以及如何在前后端交互中实现商品类型的增删改查。

model

app/model/goods_type.js
module.exports = app => {
    const mongoose = app.mongoose;  
    const Schema = mongoose.Schema;   
    var d=new Date();
    const GoodsTypeSchema = new Schema({
      title: { type: String  },    
      description: { type: String  },      
      status:{
        type:Number,
        default:1
      },
      add_time:{
        type:Number,
        default:d.getTime()
      }
    });
    return mongoose.model('GoodsType', GoodsTypeSchema,'goods_type');    
}

router.js

  router.get('/admin/goodsType', controller.admin.goodsType.index);
  router.get('/admin/goodsType/add', controller.admin.goodsType.add);
  router.get('/admin/goodsType/edit', controller.admin.goodsType.edit);
  router.post('/admin/goodsType/doEdit', controller.admin.goodsType.doEdit);
  router.post('/admin/goodsType/doAdd', controller.admin.goodsType.doAdd);  

controller

app/controller/admin/goodsType.js
'use strict';

var BaseController =require('./base.js');

class GoodsTypeController extends BaseController {
  async index() {
    var result = await this.ctx.model.GoodsType.find({});
    await this.ctx.render('admin/goodsType/index',{
      list:result
    })
  }

  async add() {
  
    await this.ctx.render('admin/goodsType/add')
  }

  async doAdd() {
    var res = new this.ctx.model.GoodsType(this.ctx.request.body);
    await res.save();
    await this.success('/admin/goodsType','增加类型成功');
  }

  async edit() {
    var id = this.ctx.query.id;
    var result = await this.ctx.model.GoodsType.find({"_id":id});
    await this.ctx.render('admin/goodsType/edit',{
      list:result[0]
    })
  }

  async doEdit() {
    var _id = this.ctx.request.body._id;
    var title = this.ctx.request.body.title;
    var description = this.ctx.request.body.description;
    await this.ctx.model.GoodsType.updateOne({"_id":_id},{
      title,description
    })
    await this.success('/admin/goodsType','编辑类型成功');
  }
  
}

module.exports = GoodsTypeController;

增加权限,显示左侧导航

clipboard.png

view

查找

app/view/admin/goodsType/index.html
<%- include ../public/page_header.html %>
<div class="panel panel-default">
    <div class="panel-heading">
        <a href="/admin/goodsType/add" class="btn btn-primary">增加商品类型</a>
    </div>
    <div class="panel-body">
        <div class="table-responsive">
            <table class="table table-bordered">
                <thead>
                    <tr class="th">
                        <th>商品类型名称</th>
                        <th>描述</th>
                        <th>增加时间</th>
                        <th class="text-center">状态</th>

                        <th class="text-center">操作</th>
                    </tr>
                </thead>
                <tbody>
                    <%for(var i=0;i<list.length;i++){%>
                    <tr>
                        <td>
                            <%=list[i].title%>
                        </td>
                        <td>
                            <%=list[i].description%>
                        </td>
                        <td>
                            <%=helper.formatTime(list[i].add_time)%>
                        </td>
                        <td class="text-center">
                            <%if(list[i].status==1){%>
                            <img src="/public/admin/images/yes.gif" onclick="app.changeStatus(this,'GoodsType','status','<%=list[i]._id%>')" />
                            <%}else{%>
                            <img src="/public/admin/images/no.gif" onclick="app.changeStatus(this,'GoodsType','status','<%=list[i]._id%>')" />
                            <%}%>
                        </td>
                        <td class="text-center"><a href="/admin/goodsTypeAttribute?id=<%=list[i]._id%>">属性列表</a> <a
                                href="/admin/goodsType/edit?id=<%=list[i]._id%>">修改</a> <a class="delete" href="/admin/delete?model=GoodsType&id=<%=list[i]._id%>">删除</a></td>
                    </tr>
                    <%}%>
                </tbody>
            </table>
        </div>
    </div>
</div>
</body>
</html>

clipboard.png

增加

app/view/admin/goodsType/add.html
                <form action="/admin/goodsType/doAdd" method="post">
                    <ul>
                        <input type="hidden" name="_csrf" value="<%=csrf%>">
                        <li>  商品类型名称: <input type="text" name="title"/></li>  
                        <li>
                            商品类型描述:
                            <textarea name="description" id="" cols="60" rows="8"></textarea>
                        </li>
                        <li>
                            <br/>
                            <button type="submit" class="btn btn-primary">提交</button>
                        </li>
                    </ul>
                </form>

clipboard.png

编辑

app/view/admin/goodsType/edit.html
               <form action="/admin/goodsType/doEdit" method="post">
                    <ul>
                        <input type="hidden" name="_csrf" value="<%=csrf%>">
                        <input type="hidden" name="_id" value="<%=list._id%>">
                        <li>  商品类型名称: <input type="text" name="title" value="<%=list.title%>"/></li>
                        <li>
                            商品类型描述:
                            <textarea name="description" id="" cols="60" rows="8"><%=list.description%></textarea>
                        </li>
                        <li>
                            <br/>
                            <button type="submit" class="btn btn-primary">提交</button>
                        </li>
                    </ul>
                </form>

clipboard.png

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值