nodejs-aop
发布于 12 年前 作者 a272121742 9538 次浏览 最后一次编辑是 8 年前

enter code here 我也算是nodejs的菜鸟了,学习nodejs倒是很快,也熟悉了几个module的用法,自己也在做一个自己的框架。 以前有根据dojo的js-aop实现进行过该写,自己用自己的代码就是熟练,js实现了aop。后来看nodejs是服务端可运行的js,想想自己的aop模块能否运用在此,经过测试,效果非凡。 我的项目主要采用的吴哥的rrestjs架构,然后加上了自己架构的mongoose的连接池、orm、aop模块,逻辑部分被分离出来,以前controller的一个method可能需要大量代码,现在变得简洁多了。如下: module.exports = {<br/> ‘index’ : _index<br/> };<br/> var User = require(’…/…/model/User’);<br/> var Dao = require(’…/…/util/Dao’);<br/> var UserDao = Dao(‘User’,User);<br/> function _index(request,response){<br/> UserDao.find(function(err,docs){<br/> var list = [];<br/> docs.forEach(function(doc){<br/> list.push(doc._doc);<br/> });<br/> response.render(’/csrjob/index.jade’,{<br/> list:list<br/> });<br/> });<br/> };<br/> 进行aop切入后,代码变为:<br/> module.exports = {<br/> index : _index<br/> };<br/> var Dao = gf_import(’/util/Dao’);<br/> var UserDao = Dao(‘User’);<br/> function _index(request,response){<br/> UserDao.find(function(err,docs){<br/> response.render(’/csrjob/index.jade’,gf_getjson(!err,docs));<br/> })<br/> };<br/> 数据过来之后直接可使用CRUD,而数据的拦截、过滤、验证都由aop模块进行拦截,实现核心与旁路业务逻辑的分离,便于开发和维护。

    现在要将自己的项目发布到一个nodejs主机上,准备接入weibo应用。吴哥的邀请码都用完了,跪求邀请码啊!
    
    另外希望向一些nodejs的高手、达人、大神请教,请仁慈的大神们仁慈的加加我qq吧!
    QQ:87227650[@163](/user/163).com,请在查找的时候如上输入才能找到我!
9 回复
  • 在DAO中维护的UserDao?还有其它功能吗?这个顶多算IOC吧,而且也没看出配置或者约定写在了哪里
  • 没看出哪有有AOP的概念啊,或者楼主再讲详细点…

看来是来自java圈的哥们。

DAO模块是个抽象类,目前是按照名称构建,传入一个名字返回该名字对应的数据库操作模型。UserDao在进行操作的时候,中间有很多复杂的过程,例如数据的接受、封装、验证、过滤、转码等操作,这些并不是controller核心的功能,对于nodejs来讲,到controller这一步就已经是数据库模型的操作了,而对于实体模型的非核心业务,有aop模块注入实现,这些都是可配置的,介于aop不太完善,以及代码量大,所以仅仅只是展示controller的简化过程。今后有时间可以提供更完整和详细的代码,请各位大神给个激活码让我能更进一步做测试。

aop在哪里? ioc 也算不上吧?

目前该模块仿造dojo的aop实现方式写的,提供了各种通知的注入,代码量大,暂未公布

@a272121742 注入也是需要配置的,一个变量需要注入一个什么实体;这个也是ioc,和aop木有关系呀

@jin52yang 此配置在另外一个文件中

唔也没看出aop

代码可以用```包起来以保留格式。

部署代码可以部署到heroku

回到顶部