控制器
# 介绍
和大多数框架一样,接收前端请求,组织参数及调用Service来处理业务。(非单例)
它是前端渲染层访问的入口,不建议在其它业务层调用。
# 示例
const { Controller } = require('ee-core');
const Services = require('ee-core/services');
/**
* 示例控制器
* @class
*/
class ExampleController extends Controller {
constructor(ctx) {
super(ctx);
}
/**
* 所有方法接收两个参数
* @param args 前端传的参数
* @param event - ipc通信时才有值。详情见:控制器文档
*/
/**
* test
*/
async test (args, event) {
// 前端参数
const params = args;
// 调用service
const result = await Services.get('example').test('electron');
// 主动向前端发请求
// channel 前端ipc.on(),监听的路由
const channel = "controller.example.something"
// IpcMainInvokeEvent
event.reply(channel, {age:21})
// IpcMainEvent
event.sender.send(`${channel}`, data)
// 返回数据
const data = {}
return data;
}
}
# ctx
全局app对象,等于控制器的this.app
# args
前端传的参数
# event
ipc通信时才有值,且值为动态对象;
- 前端使用 invoke() 方法时,event 等于 IpcMainInvokeEvent
- 前端使用 send()/sendSync() 方法时,event 等于 IpcMainEvent
说明如下:
# event - IpcMainInvokeEvent
前端使用 invoke() 方法时,event == IpcMainInvokeEvent
# event - IpcMainEvent
前端使用 send()/sendSync() 方法时,event == IpcMainEvent
上次更新: 2025/03/27, 02:12:08