代码拉取完成,页面将自动刷新
pn-framework是实现Module-Controller-Action架构的基础框架。提供全局nirvana对象,支持如下特性:
默认文件夹结构 + pn-demo // 你的模块文件夹名称 - bootstrap.js // 用于初始化你的模块 + controller // 默认的控制器文件夹名称 - controller1.js // 控制器文件,文件名任意 + config // 框架以外,你自行定义的,里面的配置由你在bootstrap中实现读入 - index.js + help // 其他自定义文件夹
module.exports = class extends nirvana.Module {
constructor(name) {
super(name);
// todo: get config
this.config = require('./config');
}
}
module.exports = class extends nirvana.Controller {
constructor() {
super();
}
__init() {
super();
// 控制器初始化,对象实例化时执行一次
}
// 每次执行action前调用一次
async __before(name, param) {
let _param = super.__before(name, param);
return _param; // 返回更新后的param参数,供xxxxAction调用
}
// 每次执行action后调用一次
async __after(data) {
// 此处对data进行后期处理
return data;
}
// _param是隐藏参数,由__before返回
testAction(param, _param) {
console.log(p);
}
}
此处实现了一个简单的test方法
require('./nirvana');
// 方法1
let m = nirvana.module('./pn-demo');
let c = m.controller('controller1');
// 方法2
let c = nirvana.controller('./pn-demo', 'controller1');
// 使用上面两种方法调用action方法,并提供参数供testAction调用
c.action('test', {a:1, b:4});
// 方法3
nirvana.action('./pn-demo', 'controller1', 'test', 'test message'.toUpperCase())
.action返回promise对象
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。