控制器
# 介绍
和大多数框架一样,接收前端请求,组织参数及调用Service来处理业务。(非单例)
它是前端渲染层访问的入口,无法在其它业务层调用。
# 示例
const { exampleService } = require('../service/example');
/**
* 示例控制器
* @class
*/
class ExampleController {
/**
* 所有方法接收两个参数
* @param args 前端传的参数
* @param event - 通信时才有值
*/
/**
* test
*/
async test (args, event) {
// 前端参数
const params = args;
// 调用service
const result = await exampleService.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;
}
}
ExampleController.toString = () => '[class ExampleController]';
module.exports = ExampleController;
# args
前端传的参数
# event
ipc通信时才有值,且值为动态对象;
- 前端使用 invoke() 方法时,event 等于 IpcMainInvokeEvent
- 前端使用 send()/sendSync() 方法时,event 等于 IpcMainEvent
- 开启 http服务时候,是 koa 的 ctx 对象
说明如下:
# event - IpcMainInvokeEvent
前端使用 invoke() 方法时,event == IpcMainInvokeEvent
# event - IpcMainEvent
前端使用 send()/sendSync() 方法时,event == IpcMainEvent
上次更新: 2025/04/10, 03:07:49