egg(83,84,85,86)--egg之商城首页数据渲染

协程流星
• 阅读 1273

controller

app/controller/default/index.js
'use strict';

const Controller = require('egg').Controller;

class IndexController extends Controller {
  async index() {


    //获取顶部导航的数据

    var topNav=await this.ctx.model.Nav.find({"position":1});


   //轮播图

   var focus=await this.ctx.model.Focus.find({"type":1});


   //商品分类

   var goodsCate=await this.ctx.model.GoodsCate.aggregate([
            
        {
          $lookup:{
            from:'goods_cate',
            localField:'_id',
            foreignField:'pid',
            as:'items'      
          }      
      },
      {
          $match:{
            "pid":'0'
          }
      }

    ])

    // console.log(topNav);
    var middleNav=await this.ctx.model.Nav.find({"position":2});

    middleNav=JSON.parse(JSON.stringify(middleNav));  //1、不可扩展对象

    for(var i=0;i<middleNav.length;i++){     
       if(middleNav[i].relation){
            //数据库查找relation对应的商品            
            try{
                var tempArr=middleNav[i].relation.replace(/,/g,',').split(',');
                var tempRelationIds=[];
                tempArr.forEach((value)=>{
                  tempRelationIds.push({
                    "_id":this.app.mongoose.Types.ObjectId(value)
                  })
                })
                var relationGoods=await this.ctx.model.Goods.find({
                  $or:tempRelationIds
                },'title goods_img');

              middleNav[i].subGoods=relationGoods;

            }catch(err){   //2、如果用户输入了错误的ObjectID(商品id)

              middleNav[i].subGoods=[];
            
            }
       }else{

          middleNav[i].subGoods=[];
       }

    }

    console.log(JSON.stringify(middleNav))

    var shoujiResult=await this.service.goods.get_category_recommend_goods('5bbf058f9079450a903cb77b','best',8);
    await this.ctx.render('default/index',{
      topNav:topNav,
      focus:focus,
      goodsCate:goodsCate,
      middleNav:middleNav,
      shoujiResult:shoujiResult
    });
    
  }
}

module.exports = IndexController;

view

app/view/default/index.html

<% include  ./public/header.html%>
<!--end header -->

<!-- start banner_x -->
        <div class="banner_x center">
            <a href="./index.html" target="_blank"><div class="logo fl"></div></a>
            <a href=""><div class="ad_top fl"></div></a>
            <div class="nav fl">
                <ul class="clearfix" id="nav_list">


                <%for(var i=0;i<middleNav.length;i++){ %>
                        


                    <li>
                        <a href="#" target="_blank"><%=middleNav[i].title%></a>

                        <%if(middleNav[i].subGoods.length>0) {%>
                    
                            <ol class="children-list clearfix">
                                    
                                    <%for(var j=0;j<middleNav[i].subGoods.length;j++){ %>
                            
                                        <li>
                                            <a href="#">
                                                <img src="<%=middleNav[i].subGoods[j].goods_img%>" />
                                                <p><%=middleNav[i].subGoods[j].price%></p>
                                            </a>
                                        </li>        
                                        
                                    <%}%>
                        
                            </ol>

                        <%}%>
                    
                    </li>

                <%} %>
                </ul>
            </div>
            <div class="search fr">
                <form action="" method="post">
                    <div class="text fl">
                        <input type="text" class="shuru"  placeholder="小米6&nbsp;小米MIX现货">
                    </div>
                    <div class="submit fl">
                        <input type="submit" class="sousuo" value="搜索"/>
                    </div>
                    <div class="clear"></div>
                </form>
                <div class="clear"></div>
            </div>
        </div>
<!-- end banner_x -->

    <!-- start banner_y -->
        <div class="banner_y center">
            <div class="nav">                
                <ul>

                    <%for(var i=0;i<goodsCate.length;i++){ %>
                        <li>
                            <a href="#"><%=goodsCate[i].title%></a>                        
                            <div class="pop">
                                    <ol class="cate_list clear">
                                    
                                            <%for(var j=0;j<goodsCate[i].items.length;j++){ %>
                                                <li>
                                                    <div class="xuangou_left">
                                                        <a href="#">
                                                            <div class="img fl"><img src="<%=goodsCate[i].items[j].cate_img%>" alt="<%=goodsCate[i].items[j].title%>"></div>
                                                            <span class="fl"><%=goodsCate[i].items[j].title%></span>                                                            
                                                        </a>
                                                    </div>
                                                    
                                                </li>
                                            <%}%>
                                                                    
                                    </ol>
                            </div>
                        </li>
                    <%}%>
                </ul>
            </div>


              <div class="swiper-container">
                <div class="swiper-wrapper">
                    

                    <%for(var i=0;i<focus.length;i++){ %>
                        <div class="swiper-slide">

                                <a href="<%=focus[i].link%>" target="_blank">
                                    <img src="<%=focus[i].focus_img%>" alt="<%=focus[i].title%>" />

                                </a>
                        </div>
                    <%}%>
                </div>
                <!-- Add Arrows -->
                <div class="swiper-button-next"></div>
                <div class="swiper-button-prev"></div>
              </div>
        
        </div>    

        <div class="sub_banner center">
            <div class="sidebar fl">
                <div class="fl"><a href=""><img src="/public/default/image/hjh_01.gif"></a></div>
                <div class="fl"><a href=""><img src="/public/default/image/hjh_02.gif"></a></div>
                <div class="fl"><a href=""><img src="/public/default/image/hjh_03.gif"></a></div>
                <div class="fl"><a href=""><img src="/public/default/image/hjh_04.gif"></a></div>
                <div class="fl"><a href=""><img src="/public/default/image/hjh_05.gif"></a></div>
                <div class="fl"><a href=""><img src="/public/default/image/hjh_06.gif"></a></div>
                <div class="clear"></div>
            </div>
            <div class="datu fl"><a href=""><img src="/public/default/image/hongmi4x.png" alt=""></a></div>
            <div class="datu fl"><a href=""><img src="/public/default/image/xiaomi5.jpg" alt=""></a></div>
            <div class="datu fr"><a href=""><img src="/public/default/image/pinghengche.jpg" alt=""></a></div>
            <div class="clear"></div>


        </div>
    <!-- end banner -->

    <!-- start danpin -->
        <div class="danpin center">
            
            <div class="title center">小米明星单品</div>
            <div class="main center">
                <div class="mingxing fl">
                    <div class="sub_mingxing"><a href=""><img src="/public/default/image/pinpai1.png" alt=""></a></div>
                    <div class="pinpai"><a href="">小米MIX</a></div>
                    <div class="youhui">5月9日-21日享花呗12期分期免息</div>
                    <div class="jiage">3499元起</div>
                </div>
                <div class="mingxing fl">
                    <div class="sub_mingxing"><a href=""><img src="/public/default/image/pinpai2.png" alt=""></a></div>
                    <div class="pinpai"><a href="">小米5s</a></div>
                    <div class="youhui">5月9日-10日,下单立减200元</div>
                    <div class="jiage">1999元</div>
                </div>
                <div class="mingxing fl">
                    <div class="sub_mingxing"><a href=""><img src="/public/default/image/pinpai3.png" alt=""></a></div>
                    <div class="pinpai"><a href="">小米手机5 64GB</a></div>
                    <div class="youhui">5月9日-10日,下单立减100元</div>
                    <div class="jiage">1799元</div>
                </div>
                <div class="mingxing fl">     
                    <div class="sub_mingxing"><a href=""><img src="/public/default/image/pinpai4.png" alt=""></a></div>
                    <div class="pinpai"><a href="">小米电视3s 55英寸</a></div>
                    <div class="youhui">5月9日,下单立减200元</div>
                    <div class="jiage">3999元</div>
                </div>
                <div class="mingxing fl">
                    <div class="sub_mingxing"><a href=""><img src="/public/default/image/pinpai5.png" alt=""></a></div>
                    <div class="pinpai"><a href="">小米笔记本</a></div>
                    <div class="youhui">更轻更薄,像杂志一样随身携带</div>
                    <div class="jiage">3599元起</div>
                </div>
                <div class="clear"></div>
            </div>
        </div>



        <!-- 手机 -->

        <div class="category_item w">
            <div class="title center">手机</div>
            <div class="main center">


                <div class="category_item_left">

                    <img src="/public/default/image/shouji.jpg" alt="手机">
                </div>


                <div class="category_item_right">
                        
                        <%for(var i=0;i<shoujiResult.length;i++){ %>
                        

                                <div class="hot fl">
                                        <div class="xinpin"><span>新品</span></div>
                                        <div class="tu"><a href=""><img src="<%=shoujiResult[i].goods_img%>"></a></div>
                                        <div class="miaoshu"><a href="#"><%=shoujiResult[i].title%></a></div>
                                        <div class="jiage"><%=shoujiResult[i].price%>元</div>
                                        <!-- <div class="pingjia">372人评价</div> -->
                                        <div class="piao">
                                            
                                                <span><%=shoujiResult[i].sub_title%></span>
                                                
                                            
                                        </div>
                                </div>
                        <%} %>
                            
                </div>
            
            
            </div>
        </div>



        <!-- 配件 -->
        <div class="category_item w">
            <div class="title center">配件</div>
            <div class="main center">
                <div class="content">
                    <div class="hot fl"><a href=""><img src="/public/default/image/peijian1.jpg"></a>
                    </div>
                    <div class="hot fl">
                        <div class="xinpin"><span>新品</span></div>
                        <div class="tu"><a href=""><img src="/public/default/image/peijian2.jpg"></a></div>
                        <div class="miaoshu"><a href="">小米6 硅胶保护套</a></div>
                        <div class="jiage">49元</div>
                        <div class="pingjia">372人评价</div>
                        <div class="piao">
                            <a href="">
                                <span>发货速度很快!很配小米6!</span>
                                <span>来至于mi狼牙的评价</span>
                            </a>
                        </div>
                    </div>
                    <div class="hot fl">
                        <div class="xinpin"><span style="background:#fff"></span></div>
                        <div class="tu"><a href=""><img src="/public/default/image/peijian3.jpg"></a></div>
                        <div class="miaoshu"><a href="">小米手机4c 小米4c 智能</a></div>
                        <div class="jiage">29元</div>
                        <div class="pingjia">372人评价</div>
                    </div>
                    <div class="hot fl">
                        <div class="xinpin"><span style="background:red">享6折</span></div>
                        <div class="tu"><a href=""><img src="/public/default/image/peijian4.jpg"></a></div>
                        <div class="miaoshu"><a href="">红米NOTE 4X 红米note4X</a></div>
                        <div class="jiage">19元</div>
                        <div class="pingjia">372人评价</div>
                        <div class="piao">
                            <a href="">
                                <span>发货速度很快!很配小米6!</span>
                                <span>来至于mi狼牙的评价</span>
                            </a>
                        </div>
                    </div>
                    <div class="hot fl">
                        <div class="xinpin"><span style="background:#fff"></span></div>
                        <div class="tu"><a href=""><img src="/public/default/image/peijian5.jpg"></a></div>
                        <div class="miaoshu"><a href="">小米支架式自拍杆</a></div>
                        <div class="jiage">89元</div>
                        <div class="pingjia">372人评价</div>
                        <div class="piao">
                            <a href="">
                                <span>发货速度很快!很配小米6!</span>
                                <span>来至于mi狼牙的评价</span>
                            </a>
                        </div>
                    </div>
                    <div class="clear"></div>
                </div>
                <div class="content">
                    <div class="hot fl"><a href=""><img src="/public/default/image/peijian6.png"></a>
                    </div>
                    <div class="hot fl">
                        <div class="xinpin"><span style="background:#fff"></span></div>
                        <div class="tu"><a href=""><img src="/public/default/image/peijian7.jpg"></a></div>
                        <div class="miaoshu"><a href="">小米指环支架</a></div>
                        <div class="jiage">19元</div>
                        <div class="pingjia">372人评价</div>
                        <div class="piao">
                            <a href="">
                                <span>发货速度很快!很配小米6!</span>
                                <span>来至于mi狼牙的评价</span>
                            </a>
                        </div>
                    </div>
                    <div class="hot fl">
                        <div class="xinpin"><span style="background:#fff"></span></div>
                        <div class="tu"><a href=""><img src="/public/default/image/peijian8.jpg"></a></div>
                        <div class="miaoshu"><a href="">米家随身风扇</a></div>
                        <div class="jiage">19.9元</div>
                        <div class="pingjia">372人评价</div>
                    </div>
                    <div class="hot fl">
                        <div class="xinpin"><span style="background:#fff"></span></div>
                        <div class="tu"><a href=""><img src="/public/default/image/peijian9.jpg"></a></div>
                        <div class="miaoshu"><a href="">红米4X 高透软胶保护套</a></div>
                        <div class="jiage">59元</div>
                        <div class="pingjia">775人评价</div>
                    </div>
                    <div class="hotlast fr">
                        <div class="hongmi"><a href=""><img src="/public/default/image/hongmin4.png" alt=""></a></div>
                        <div class="liulangengduo"><a href=""><img src="/public/default/image/liulangengduo.png" alt=""></a></div>                    
                    </div>
                    <div class="clear"></div>
                </div>                
            </div>
        </div>
        <footer class="mt20 center">            
            <div class="mt20">小米商城|MIUI|米聊|多看书城|小米路由器|视频电话|小米天猫店|小米淘宝直营店|小米网盟|小米移动|隐私政策|Select Region</div>
            <div>©mi.com 京ICP证110507号 京ICP备10046444号 京公网安备11010802020134号 京网文[2014]0059-0009号</div> 
            <div>违法和不良信息举报电话:185-0130-1238,本网站所列数据,除特殊说明,所有数据均出自我司实验室测试</div>
        </footer>
    </body>
</html>

效果

egg(83,84,85,86)--egg之商城首页数据渲染

egg(83,84,85,86)--egg之商城首页数据渲染

egg(83,84,85,86)--egg之商城首页数据渲染

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
4年前
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''
Stella981 Stella981
4年前
Feign请求响应结果被截取com.fasterxml.jackson.core.io.JsonEOFException
在生产环境使用feign调用外部接口时,偶尔会出现下面错误2020101511:00:18,535ERRORcom.shein.abc.rmp.controller.RecExplainConfigControllerrec_explain_query.failffeign.codec.DecodeExc
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
ubuntu14.04安装完系统网卡名不为eth格式进行网卡名的修改
在安装14.04server版之后会网卡名的显示会有些乱root@controller:~vim/etc/default/grubGRUB_CMDLINE_LINUX"net.ifnames0biosdevname0"这一行加入这些内容root@controller:~updategrub
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
4年前
Spring boot中的异常处理之注解响应
Controller层returnpatientRepository.findById(id).orElseThrow(()newNotFoundException(String.format("Patient%dnotfound",id)));E
Stella981 Stella981
4年前
Noark入门之协议映射
0x00消息控制器消息控制器,主要作用就是为每个模块提供消息处理的入口.这里的消息不仅仅是协议,还有内部指令,事件等等逻辑入口,这也是为了响应线程模型作出的一种支撑,只要入口在此消息控制器内,那必然走期望的线程调度。@Controller用于标识一个类为当前模块的消息控制器入口.@Controller(threadGroup