一、直接使用扩展的方式
-
1、在
app
文件夹下创建一个extend
的文件夹,并且在下面创建一个context.js
的文件 -
2、
context.js
文件使用os
模块获取当前操作系统的信息'use strict'; const os = require('os'); module.exports = { get info() { const data = { memory: os.totalmem() / 1024 / 1024 / 1024 + 'G', platform: os.platform(), cpus: os.cpus().length, url: this.request.url, }; return data; }, };
-
3、在控制器中使用
info
属性'use strict'; const Controller = require('egg').Controller; class HomeController extends Controller { async index() { const { ctx } = this; // 直接获取 console.log(ctx.info); ctx.body = 'hi, egg'; } } module.exports = HomeController;
二、使用插件的方式来扩展ctx
属性
-
1、在根目录下创建一个
lib
的文件夹,lib
文件夹下的文件目录如下. └── plugin └── egg-info └── app └── extend ├── context.js └── package.json 4 directories, 2 files
-
2、
context.js
的文件和上面一样的 -
3、
package.json
的文件内容如下{ "eggPlugin": { "name": "info" } }
-
4、在
egg
项目中开启使用自定义的插件(config/plugin.js
)文件中开启配置'use strict'; const path = require('path'); exports.info = { enable: true, path: path.join(__dirname + './../lib/plugin/egg-info'), };