一、路由进阶Egg路由的路由重定向,路由分组

在router.js修改为如下格式require引用

module.exports = app => {
const { router, controller } = app;
require('./routers/admin')(app);
require('./routers/index')(app);
require('./routers/api')(app);
};

新建 routers文件夹,分别建admin.js index.js api.js放置不同内容,写法和原来的路由文件写法一致。

路由重定向

在Controller中使用

this.ctx.status = ;

This.ctx.redirect()

在routers文件中使用

router.redirect('/new','/',)

二、Egg中间件指定模块引用jsonp koa中间件在egg中使用

方法1

const auth = app.middleware.auth() //在单独模块中定义
module.exports = app => {
const { router, controller } = app;
router.get('/admin/user',auth,controller.admin.user.index);
};

在路由的第二个参数填入中间键名称

在router第二个参数中引用。

中间键的通用配置

Enable 是否开启

Match 设置只有符合条件的使用

Ignore  排除使用中间件的目录,不能和match同时使用

.//对后台管理通用配置
config.adminAuth ={
match: '/admin' //对某个路由配置表示只匹配该路由
}

3.Koa-jsonp使用 https://github.com/kilianc/koa-jsonp

Npm i koa-jsonp

//koa 中的应用
// jsonp = require("koa-jsonp")
// app.use(jsonp())
新建中间件jsonp.JS
module.exports =require("koa-jsonp");
Config.default.js中配置
config.middleware = ['jsonp'];

koa-compress的使用

建立中间件引用

module.exports =require("koa-compress");
Config.default.js中配置
config.compress = {
threshold: ,
enable:false,
match(ctx){
if(ctx.request.url=='/yingu' || ctx.request.url == '/news'){
return true
}
return false;
}
}

非标准写法

let koaJsonp = require("koa-jsonp");
module.exports = (option,app) => {
return koaJsonp(option)
}

三、控制器控制器继承的使用

新建core/base.js作为公共controller

'use strict';
const Controller = require('egg').Controller;
class BaseController extends Controller {
async success(redirectUrl = "/") {
await this.ctx.render('public/success',{url:redirectUrl});
}
async error(redirectUrl) {
await this.ctx.render('public/error',{url:redirectUrl || "/"});
}
}
module.exports = BaseController;

在list.js中修改引用的controller

const BaseController = require('../core/base.js');
class ListController extends BaseController { //继承BaseController
async index() { await this.success('/news/1') //直接this使用公共内容 } }

四、定时任务模块的使用,和实现网站监控功能

在app/schedule写定时任务模块,新建watchfile.js

const Subscription = require('egg').Subscription;
let i=;
class WatchFile extends Subscription {
// 通过 schedule 属性来设置定时任务的执行间隔等配置
static get schedule() {
return {
interval: '5m', // 1 分钟间隔
type: 'all', // 指定所有的 worker 都需要执行
disable:false //是否开启
};
}
// subscribe 是真正定时任务执行时被运行的函数
async subscribe() {
i++
console.log(i)
}
}
module.exports = WatchFile;

 

egg.js-基于koa2的node.js进阶(一)的更多相关文章

  1. iKcamp团队制作|基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备

    安装搭建项目的开发环境 视频地址:https://www.cctalk.com/v/15114357764004 文章 Koa 起手 - 环境准备 由于 koa2 已经开始使用 async/await ...

  2. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...

  3. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923883523 log 日志中间件 最困难的事情就是认识自己. 在一个真实的项目中,开发只是整个投入的一小部分 ...

  4. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON

    视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影. 前面的文章中,我们已经完成了项目中常见的问题,比如 路由 ...

  5. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源

    视频地址:https://www.cctalk.com/v/15114923882788 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并 ...

  6. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 视图Nunjucks

    视频地址:https://www.cctalk.com/v/15114923888328 视图 Nunjucks 彩虹是上帝和人类立的约,上帝不会再用洪水灭人. 客户端和服务端之间相互通信,传递的数据 ...

  7. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 代码分层

    视频地址:https://www.cctalk.com/v/15114923889408 文章 在前面几节中,我们已经实现了项目中的几个常见操作:启动服务器.路由中间件.Get 和 Post 形式的请 ...

  8. egg.js-基于koa2的node.js入门

    一.Egg.JS 简介 Egg.JS是阿里开发的一套node.JS的框架,主要以下几个特点: Egg 的插件机制有很高的可扩展性,一个插件只做一件事,Egg 通过框架聚合这些插件,并根据自己的业务场景 ...

  9. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 规范与部署

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923889450 规范与部署 懒人推动社会进步. 本篇中,我们会讲述三个知识点 定制书写规范 开发环境运行 如何 ...

随机推荐

  1. 配置阿里云ESC服务器部署项目

    第一次SSH登录 ECS 服务器: 打开命令行终端(git),键入: > ssh root@39.108.54.110 输入实例密码,进入服务器环境. 配置 root 及应用账号权限 新增管理员 ...

  2. 题解 P3628 【[APIO2010]特别行动队 】

    题目大意 ​ 给你一个序列, 将这个序列分成若干段, 每一段的贡献为 \(ax ^ 2 + bx + c\)(x 为 这一段的权值之和) 具体思路 50pts ​ 考虑Dp, 设\(Dp_i\)为前i ...

  3. Centos7永久修改IP地址

    Centos7永久修改IP地址 永久修改IP地址,即为设置静态的IP地址. 一.修改IP地址前需要准备的工作 1.虚拟机需要使用桥接的网络模式 虚拟机关机状态下,点击"编辑虚拟机设置&quo ...

  4. 【GDOI2015】 推箱子 状态压缩+bfs

    请注意$8$是一个美妙的数字 考虑到$8\times 8=64$,而一个unsigned long long是$64$位的,所以考虑用一个$01$状态存储箱子.考虑到箱子能转动,那么四种情况都存一下就 ...

  5. HttpContext rewritePath后中文乱码

    文章为转载 由于种种原因,最近将服务器上部署的网站修改4.0框架.但悲剧的问题出现了,发现搜索中文的时候关键词都成乱码了. 在网上查找相关资料得到几种相关解决方案如下: 服务器打补丁server200 ...

  6. 03——Solr学习之Solr的使用(不会用)

    1.先放上次在linux搭建成功的solr管理UI界面 2.有个很蛋疼的问题我就要吐槽一下了 由于没接触过solr这玩意,在百度上一顿操作搜索怎么用,怎么导入数据,建索引库什么的,看了一大片别人的博客 ...

  7. (转)Db2数据库一次生产故障详细记录---数据库坏页

    原文:http://www.talkwithtrend.com/Article/216335 前言 数据库最严重的故障莫过于数据库损坏.数据库坏页是数据库损坏的一种,如果数据库中有数据页出现损坏,在没 ...

  8. linux安装扩展总结

    ---恢复内容开始--- 1.安装php 模块安装命令. wget http://pear.php.net/go-pear 执行 php go_pear 如果是php7 wget http://pea ...

  9. 【数组】Maximum Product Subarray

    题目: Find the contiguous subarray within an array (containing at least one number) which has the larg ...

  10. Python -- Gui编程 -- MFC的使用

    1.消息框 mfcDialog.py import win32ui import win32con from pywin.mfc import dialog class MyDialog(dialog ...