html页面判断是否登录,egg(103)--egg之定义公共的中间件判断用户是否登录以及去结算页面制作...

判断用户是否登录

中间件

app/middleware/userauth.js

module.exports = (options, app) => {

return async function init(ctx, next) {

//判断前台用户是否登录 如果登录可以进入 ( 去结算 用户中心) 如果没有登录直接跳转到登录

var userinfo = ctx.service.cookies.get('userinfo');

if (userinfo && userinfo._id && userinfo.phone) {

//判断数据库里面有没有当前用户

var userResutl = await ctx.model.User.find({ "_id": userinfo._id, "phone": userinfo.phone });

if (userResutl && userResutl.length > 0) {

//注意

await next();

} else {

ctx.redirect('/login');

}

} else {

ctx.redirect('/login');

}

};

};

router

var userauthMiddleware = app.middleware.userauth({}, app);

router.get('/buy/checkout', initMiddleware, userauthMiddleware, controller.default.buy.checkout);

}

效果

点击结算,如果没有登录,就跳转到登录页面

bVbm4vd?w=1365&h=818

bVbm4vi?w=1206&h=1019

购物车到结算页面

controller

app/controller/default/buy.js

async checkout() {

var orderList = [];

var allPrice = 0;

var cartList = this.service.cookies.get('cartList');

if (cartList && cartList.length > 0) {

for (var i = 0; i < cartList.length; i++) {

if (cartList[i].checked) {

orderList.push(cartList[i]);

allPrice += cartList[i].price * cartList[i].num;

}

}

await this.ctx.render('/default/checkout.html', {

orderList: orderList,

allPrice: allPrice

})

} else {

this.ctx.redirect('/cart')

}

}

view

app/view/default/checkout.html

<%=orderList%5Bi%5D.goods_img%>

元 x

应付总额:

效果

bVbm4wD?w=1476&h=638

bVbm4wG?w=1596&h=916

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机应用的时间地点意义,计算机应用在教学中的作用

计算机应用在教学中的作用微课已成为当前我国教育信息化发展的重点和热点。在如今的数字化“微”时代&#xff0c;微课将成为一种新的教学模式和学习方式。下面是小编搜集整理的相关内容的论文&#xff0c;欢迎大家阅读参考。摘要&#xff1a;随着我国科技和技术的不断发展&…

启继承父位在什么时候_为什么少儿口才现在越来越受到家长们的重视

情商口才是个人素养、能力和智慧的一种综合反映&#xff0c;随着社会的发展&#xff0c;少年儿童的早期教育越来越受到家长的重视&#xff0c;特别是在培养孩子的语言表达能力中&#xff0c;更多的家长开始寻求各种方法来锻炼孩子的语言表达能力。源自于美国教育演说家卡耐基的…

x光肺部分割数据集_吴恩达发布了大型X光数据集,斯坦福AI诊断部分超越人类 | AAAI 2019...

数栗子 发自 凹非寺量子位 报道 | 公众号 QbitAI最近&#xff0c;吴恩达的斯坦福团队发布了一个叫做CheXpert的大型数据集&#xff0c;论文中选了AAAI 2019。它包含了224,316张标注好的胸部X光片&#xff0c;以及放射科医师为每张胸片写的病理报告。虽然&#xff0c;像从前NIH发…

【Qt之Quick模块】6. QML语法详解_1 基础语法与三种导入语句

前言 通过以上1-5文档的介绍&#xff0c;Quick与QML的概念及QML语法、类型、文件作用等已叙述个大概&#xff0c;接下来是对QML语法进行展开来说。 其实&#xff0c;学习任何一门语言或者做任何一件事情&#xff0c;并不用一开始就要求尽善尽美&#xff0c;做个无懈可击&…

datagrip将一个数据库中的数据_跨平台数据库管理神器DataGrip,用上就爱不释手...

原文链接&#xff1a;https://www.ffeeii.com/2041.htmlDataGrip是Jetbrains旗下众多优秀的效率生产工具之一。下载地址&#xff1a;https://www.jetbrains.com/datagrip/DataGrip是多引擎数据库环境&#xff0c;支持几乎常见的数据库类型&#xff1a;PostgreSQL、MySQL、Oracl…

idea下拉项目_推荐几款非常好用的IDEA插件(香)

每天进步一点点&#xff0c;坚持下去&#xff0c;你总是会不一样的。加油&#xff01;最近在整理Java常用的一些基础、ZooKeeper、Spring全家桶、源码、Dubbo、Elasticsearch、Redis、MySql、RabbitMQ、Kafka、Linux 、微服务等技术栈。持续更新中&#xff0c;欢迎点上面后端架…

ora 00900 已编译但有错误_技术分享|万万没想到!编译错误竟然还没灭绝???

CodeWisdom-技术分享万万没想到&#xff01;编译错误竟然还没灭绝&#xff1f;&#xff1f;&#xff1f;复旦大学CodeWisdom团队的代码分析和挖掘小组针对开源软件项目持续集成过程中出现的编译错误&#xff0c;进行了大规模的经验研究。该研究分析了常见的编译错误类型、修复代…

用计算机心如止水,计算机网络数据链路层

1、数据链路层使用的信道类型&#xff1a;点对点信道(1对1)广播信道(1对多)&#xff0c;如&#xff1a;集线器、交换机2、链路与数据链路&#xff1a;链路&#xff1a;点对点的物理线路段&#xff0c;中间无任何其他交换结点数据链路&#xff1a;通信协议 软件 硬件(一般用适…

easyui tree动态加载_动态路由:Gin vs SpringMVC

这两天在接触Gin&#xff0c;对它的动态路由功能比较感兴趣&#xff0c;特意做了笔记&#xff0c;顺便跟SpringMVC作下对比。1.简介Gin是使用Go/golang语言实现的HTTP Web框架。接口简洁,性能极高。截止1.4.0版本,包含测试代码,仅14K,其中测试代码9K左右,也就是说框架源码仅5K左…

伍德里奇---计量经济学第6章部分计算机习题详解(stata),伍德里奇---计量经济学第6章部分计算机习题详解(STATA)...

所以&#xff0c;log bwg t7.5840.0180npvis?0.00041npvis20.0254mage?0.00041mage20.1370.00370.000120.0093 (0.00015)n1764&#xff0c;R20.0256&#xff0c;R20.0234。当孩子的出生体重最大时&#xff0c;对应的年龄为mage? β12β20.0254[2?0.00041] 30.96&#xff0c…

vue菜单点击html,基于vue.js实现侧边菜单栏

侧边菜单栏应该是很多项目里必不可少的 自己手写了一个下面是效果图下面就说一下实现的过程 还是比较简单的首先导入一下需要的文件接下来就是我的html主页系统用户管理权限设置操作日志设备运行日志防区 防区管理警报 历史报警曲线报表统计警情处理设备然后是css* {margin: 0;…

centos7 mysql启动失败_Mysql主从复制

​好在&#xff0c;别人如何分析我&#xff0c;跟我本身是一点关系也没有的。(by 三毛)主从复制的常见用途1.数据备份对备份来说,复制是一项很有意义的技术补充,但复制既不是备份也不能取代备份2.负载均衡(读写分离)通过MySQL主从复制,可以把写操作放在主库(master)&#xff0c…

计算机应用基础知道,谁知道计算机应用基础练习题的答案?

谁知道计算机应用基础练习题的答案&#xff1f;46&#xff0e;简述美籍匈牙利数学家冯诺依曼(Von Neumann)在1946年提出的关于计算机的体系结构和“程序存储”的设计思想。47&#xff0e;简要说明Windows98中安装存放在CD—ROM上的应用程序的操作过程。48&#xff0e;简述Windo…

计算机程序编辑器中文版,小说编辑器(Atomic Scribbler)

AtomicScribbler是一款功能强大的电脑小说编辑器&#xff0c;快速编辑、创作你的小说&#xff0c;也可以直接导入文本二次编辑&#xff0c;内置了丰富的文字编辑工具&#xff0c;完全能够满足日常创作小说、编辑文字使用需求。。相关软件软件大小版本说明下载地址AtomicScribbl…

信号与系统sa函数求积分_瞎扯数学分析微积分(1~4)

算法数学之美日期&#xff1a;2019年10月30日正文共&#xff1a;12013字0图预计阅读时间&#xff1a;31分钟来源:豆瓣 wxmang这一篇帖子主要介绍人类如何从一个基于几何直观或直觉的计算技巧或计算方法&#xff0c;进化到逻辑基础严密的公理体系的例子&#xff0c;想说明人类抽…

Cocos2D研究院之CCNode详解(三)

http://www.xuanyusong.com/archives/950 上一章我们了解了cocos2d的项目路径以及工作原理&#xff0c;这次作者要真刀真枪地讲解代码了&#xff0c;咱们先来看看cocos2d最常用、也是作者认为最核心的类——CCNode。 之前说过&#xff0c;cocos2d的所有类都以CC开头&#xff0c…

计算机第二课堂教学计划,小学的第二课堂教学计划

小学的第二课堂教学计划开展内容丰富&#xff0c;形式多样的第二课堂活动&#xff0c;通过活动&#xff0c;使学生受到爱国主义及道德情感教育&#xff0c;掌握技能&#xff0c;全面提高他们的素质&#xff0c;使其成为全面发展的一代新人。下面是小编分享给大家的小学的第二课…

webstorm两个文件比对_webstorm怎么更改文件名称?或者是重命名

在开发的过程中&#xff0c;我们一个项目中会有很多的文件&#xff0c;每个文件中也会有很多的层级关系&#xff0c;有时候新建一个文件的时候&#xff0c;一不下心就会出错&#xff0c;位置出错我们可以移动更换位置&#xff0c;名称命名错误&#xff0c;我们可以重命名&#…

秒懂物理计算机出题规划,57张动图, 让你秒懂高中物理原理! 考试次次拿第一

原标题&#xff1a;57张动图, 让你秒懂高中物理原理! 考试次次拿第一物理不像语文或者英语&#xff0c;文科的东西记的东西偏多&#xff0c;理解的成分偏少&#xff0c;但物理理解的成分很重&#xff0c;要死记硬背的东西反而很少。要想把物理学好&#xff0c;先要把简单的概念…

matlab机器人自动分拣_极智嘉分拣系统落地 助力打造智慧物流引擎

全球AMR引领者极智嘉(Geek)近日宣布已为知名跨境电商企业棒谷科技(Banggood)部署全柔性智能AMR分拣系统,以支持棒谷科技日益增长的海外跨境电商业务需求。棒谷科技业务体系遍及全球200多个国家。随着电商业务的加速转变,棒谷科技的发展面临线上销售增长快、业务需求难以预测、劳…