亚洲一区精品自拍_2021年国内精品久久_男同十八禁gv在线观看_免费观看a级性爱黄片

Article / 文章中心

Egg.js中復用靜態(tài)頁面邏輯、局部刷新架構、生成驗證碼

發(fā)布時間:2021-11-17 點擊數:754


配置ejs模板引擎


  • 安裝插件

npm i egg-view-js復制代碼

  • plugin.js中添加下列代碼

module.exports = {  // had enabled by egg  static: {    enable: true  },  ejs: {    enable: true,    package: 'egg-view-ejs'  }}復制代碼

  • config.default.js中添加下列代碼

const userConfig = {    view: {      mapping: {        '.html': 'ejs'      }    }  }復制代碼

對視圖進行分組

將所有的頁面都放在view文件夾中是不合理的,所以可以將view文件夾進行分組。

復用靜態(tài)邏輯

  1. 把需要復用的靜態(tài)頁面抽離到一個文件夾中。

  2. 在需要復用的地方,通過下面的方式進行引入。

<% include ../public/page_header.html %>復制代碼

配置局部刷新架構

之所以要配置局部刷新架構,就是希望當我們點擊某個鏈接的時候,能夠保存原有的狀態(tài),例如瀏覽器導航欄的狀態(tài)。

配置局部刷新的核心在于跳轉路由的時候,通過target指向iframe。

  • 增加角色
  • 復制代碼


    基于Serverless的Egg.js后臺管理系統配置Session

    騰訊云的Serverless云函數如果30分鐘內沒有訪問的話就會銷毀容器,所以如果session要保存30分鐘以上的話,就需要把session存儲到數據庫中。

    配置session

    • config.default.js

    config.session = {    key: 'session_id_test',    maxAge: 30*60*1000;    httpOnly: true,    encrypt: true,    renew: true  }復制代碼

    • 在控制器中設置session

    this.ctx.session.username = "張三";復制代碼

    • 在控制器中讀取session

    this.ctx.body = this.ctx.session.username;復制代碼

    生成圖形驗證碼

    1. 安裝依賴

    npm install --save svg-captcha復制代碼

    1. 在控制器中進行下面的定義

    const svgCaptcha = require('svg-captcha');  // 驗證碼模塊  async captcha() {    const captcha = svgCaptcha.create({      size: 4,      fontSize: 50,      width: 100,      height: 40,      background: "#cc9966"    });    console.log(captcha.text);    this.ctx.response.type = 'image/svg+xml';    this.ctx.body = captcha.data;  }復制代碼

    1. 靜態(tài)頁面獲取驗證碼

    靜態(tài)驗證碼獲取驗證碼是通過訪問路由,讓控制器返回圖片來實現的。

    dd>驗 證 碼:復制代碼

    1. 將驗證碼保存在session中

    this.ctx.session.code = captcha.text;復制代碼

    如果你想復用上述的驗證碼邏輯,可以通過下面的方式進行封裝。

    • 首先在app文件夾下創(chuàng)建service文件夾,并在service文件夾下創(chuàng)建tools.js

    'use strict';const Service = require('egg').Service;const svgCaptcha = require('svg-captcha');class ToolsService extends Service {  async getCaptcha() {    const captcha = svgCaptcha.create({      size: 4,      fontSize: 50,      width: 100,      height: 40,      background: "#cc9966"    });    return captcha;  }}module.exports = ToolsService;復制代碼

    • 在控制器中調用即可

    async captcha() {    let captcha = await this.service.tools.getCaptcha();    console.log(captcha.text);    // 將驗證碼保存在session中    this.ctx.session.code = captcha.text;    this.ctx.response.type = 'image/svg+xml';    this.ctx.body = captcha.data;  }




    版權聲明:本文內容轉發(fā)自阿里云社區(qū),由阿里云實名注冊用戶自發(fā)貢獻!版權歸原作者所有本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本中有涉嫌抄襲的內容,請聯系站內客服,本將立刻刪除涉嫌侵權內容。