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,请在查找的时候如上输入才能找到我!
- 在DAO中维护的UserDao?还有其它功能吗?这个顶多算IOC吧,而且也没看出配置或者约定写在了哪里
- 没看出哪有有AOP的概念啊,或者楼主再讲详细点…
看来是来自java圈的哥们。
DAO模块是个抽象类,目前是按照名称构建,传入一个名字返回该名字对应的数据库操作模型。UserDao在进行操作的时候,中间有很多复杂的过程,例如数据的接受、封装、验证、过滤、转码等操作,这些并不是controller核心的功能,对于nodejs来讲,到controller这一步就已经是数据库模型的操作了,而对于实体模型的非核心业务,有aop模块注入实现,这些都是可配置的,介于aop不太完善,以及代码量大,所以仅仅只是展示controller的简化过程。今后有时间可以提供更完整和详细的代码,请各位大神给个激活码让我能更进一步做测试。
aop在哪里? ioc 也算不上吧?
目前该模块仿造dojo的aop实现方式写的,提供了各种通知的注入,代码量大,暂未公布
@a272121742 注入也是需要配置的,一个变量需要注入一个什么实体;这个也是ioc,和aop木有关系呀
@jin52yang 此配置在另外一个文件中
唔也没看出aop
代码可以用```
包起来以保留格式。
部署代码可以部署到heroku