一、路由进阶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. CSS3盒子模型(中)

    在CSS盒子模型(上)讲到了盒子模型的边框,内外边距,外边距合并等知识,接下来要总结的是盒子模型的布局常用到的一些CSS属性,比如:float.position等知识. 盒子模型布局稳定性 开始学习盒 ...

  2. 常见手机的useragent

    设备 系统 浏览器 User-Agent 华为Mate 10 Pro Android QQ浏览器 Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL ...

  3. h5聊天室web端(仿微博、微信)|h5仿微信网页端|仿微信界面弹窗

    这段时间一直在着手h5开发手机端聊天系统——html5仿微信聊天室,最近又在原先基础上开发了一个仿微信.微博网页web版聊天系统,使用到了HTML5+css3+jQuery+wcpop等技术开发,弹窗 ...

  4. 50道JAVA基础编程练习题

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...

  5. 使用Second Copy同步ftp服务器的差异文件

    公司一直用自主开发的一个同步工具来进行数据库文件异机备份的,但无奈太不稳定,三天两头出现服务挂死的问题,特别是最近这1个月,几天就1次. 问题现象都是服务一直在运行,但没有复制文件到备份机上,而且备份 ...

  6. Postman—脚本介绍

    前言 Postman包含一个基于Node.js的强大的运行时环境,它允许我们为请求和集合添加动态行为.这使的我们可以编写测试用例,构建可包含动态参数的请求,在请求之间传递数据等等. 我们可以在流程中以 ...

  7. Windows下如何正确下载并安装可视化的Redis数据库管理工具(redis-desktop-manager)(图文详解)

    不多说,直接上干货! Redis Desktop Manager是一个可视化的Redis数据库管理工具,使用非常简单.       官网下载:https://redisdesktop.com/down ...

  8. Nginx的几个常用配置和技巧

    文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了! 一个站点配置多个域名 server { listen 80; server_name ops-coffee.cn b ...

  9. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  10. java.lang.ArithmeticException: Rounding necessary

    这个错误就是精度丢失问题 https://blog.csdn.net/qq496013218/article/details/70792655