基于个人习惯给express做了个扩展库,看看蛋疼不?
发布于 10 年前 作者 jarlyyn 3366 次浏览 最后一次编辑是 8 年前 来自 分享

公司主业非nodejs。之前弄一些项目时觉得later.js不错,所以做一些小的项目就往node上靠了。 在测试单元改用mocha后,很喜欢他的表达方式,所以代码改着改着就往上面靠了。 写了一般的配合angularjs的api框架/前台模块 看看蛋疼不: router.js: app.all(’/login’,run( web.IF(Form.isValidated(‘login’))( ‘login’, web.Http.doRedirect(‘html/index.html’) ), MVC.doRender(‘login’) ));; app.post(’/api/create’,run( web.IF(Form.isValidated(‘createuser’))( ‘createuser’ ), web.IF(Form.isPending(‘createuser’))( web.Http.doNotFound() ), Form.doJsonErrors(‘createuser’) )); app.post(’/api/update’,run( web.IF(Form.isValidated(‘updateuser’))( ‘updateuser’ ), web.IF(Form.isPending(‘updateuser’))( web.Http.doNotFound() ), web.IF(Form.isError(‘updateuser’,‘id’))( web.Http.doNotFound() ),
Form.doJsonErrors(‘updateuser’) ));

app.post(’/api/toggle’,run( web.IF(Form.isValidated(‘toggleuser’))( ‘toggleuser’ ), web.IF(Form.isPending(‘toggleuser’))( web.Http.doNotFound() ), web.IF(Form.isError(‘toggleuser’,‘id’))( web.Http.doNotFound() ),
Form.doJsonErrors(‘toggleuser’) ));
app.post(’/api/setpassword’,run( web.IF(Form.isValidated(‘setpassword’))( ‘setpassword’ ), web.IF(Form.isPending(‘setpassword’))( web.Http.doNotFound() ), web.IF(Form.isError(‘setpassword’,‘uid’))( web.Http.doNotFound() ),
Form.doJsonErrors(‘usersjson’) ));
app.get(’/users’,run( web.IFNot(Form.isValidated(‘listuser’))( web.Http.doNotFound() ), MVC.doJsonData(‘usersjson’) )); app.use(’/html’,express.static(__dirname + ‘/…/adminhtml/’));

forms.js: var updateUserForm=web.Form.registerForm(‘updateuser’); updateUserForm.field(‘name’) .required(‘姓名必填’); updateUserForm.field(‘username’) .required(‘用户名必填’) .addValidator(‘isEmail’,‘信箱格式不对’) .addValidator([‘seUnique’,web.models.userModel,‘username’,getUpdateUnquieQuery],‘用户名已经被使用’); updateUserForm.field(‘id’) .required(‘没有ID’) .addValidator(userExistsValidator,‘用户不存在’);

actions.js:
web.Action.register('updateuser',function(runtime){
 var form=runtime.forms.updateuser;
 var model=form._userModel;
 model.username=form.get('username');
 model.name=form.get('name');
 model.save().success(function(){
  runtime.next(null);
}).error(function(err){
  runtime.next(err);
});

});

3 回复

没标记的代码看着挺疼的。。。。

珍爱乐趣,远离java程序员

@tulayang 和java什么关系?

回到顶部