判断用户是否登录中间件app/middleware/userauth.jsmodule.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);}效果点击结算,如果没有登录,就跳转到登录页面购物车到结算页面controllerapp/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’) } }viewapp/view/default/checkout.html <%for(var i=0;i<orderList.length;i++){%> <li class=“clearfix”> <div class=“col col-img”> <img src="<%=orderList[i].goods_img%>" width=“30” height=“30”> </div> <div class=“col col-name”> <a href="#" target="_blank"> <%=orderList[i].title%> </a> </div> <div class=“col col-price”> <%=orderList[i].price%>元 x <%=orderList[i].num%> </div> <div class=“col col-status”> </div> <div class=“col col-total”> <%=orderList[i].num * orderList[i].price%>元 </div> </li> <%}%> <li class=“clearfix total-price”> <label>应付总额:</label> <span class=“val”><em data-id=“J_totalPrice”><%=allPrice%></em>元</span> </li>效果