Nodejs+Express中页面控制器及脚本自动加载设计


Express自身带强大的路由功能,这让我们可以详细拆分项目的需求,设计出优美的restful风格对外API。为了方便实现上述功能,我加入了页面控制器及脚本自动加载设计:

比如针对会员模块,我们在app.js中指定了模块的路由文件
app.use('/member', require('./routes/member'));

首先:针对POST和GET方法,分别定义如下路由规则:

router.get('/register', function(request, response, next)
{
    var action = express.autoload('action_member_register');
    action.handleGet(request, response, next);
});

router.post('/register', function(request, response, next)
{
    var action = express.autoload('action_member_register');
    action.handlePost(request, response, next);
});


这里的express.autoload就是我们临时加入一个自动加载机制,用于自动映射/scripts/action/member/register.js这个页面控制器,具体代码也非常简单:
express.autoload = function(path){return require('./scripts/'+path.replace(/_/g,'/'));};


其次:实现页面控制器基类,并在其中集成页面助手
var action = function(){};
module.exports = new action();
action.prototype.isempty = function(elem)
{
    return (elem === null || elem === undefined || elem === '');
};


最后:基于基类实现具体页面控制器即可
var action = express.inherit('flap_core_action');
module.exports = action;
action.handlePost = function(request, response, next){};

这里的express.inherit就是我们实现的自动继承,实现如下:
express.inherit = function(path){return Object.create(express.autoload(path));};


如果不想自己写,也可以使用框架自带的util.inherit来实现。

测试:
如果担心写出错,运行时大量创建临时对象,我们可以在新加入的自动加载脚本中加上测试代码,使用autocannon测试下。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值