我之前没有用nodejs做过开发,所以对有些概念不太熟悉,请教一下大家下面两个问题。 1) .net或者java开发的时候,有三层的概念,我用nodejs+bll+dal作为关键字搜索都没有找到相关的内容。不知道nodejs在这方面是怎么样的。 2)一般的mvc框架,都会有controller和action的概念,express作为mvc框架,里面好像没有,这些东西是需要自己实现的么?
谢谢大家!
1)bll 和 bal 都没听过。。。
2)action 就是 controller 里面的方法嘛。express 比较简陋,没有约定好的地方放这两个东西,但从网站的架构角度说,还是这样分层比较清晰。可以看看 cnode 的代码。
.net里的三层结构是UI(视图)+BLL(业务逻辑)+DAL(数据访问),这个一般是在处理aspx,webforms时用的,现在一般都用asp.net mvc了,nodejs中直接就是mvc了,并没有做类似.net的三层划分 express作为mvc框架看目录结构就是views+controllers+models,对应着asp.net mvc的,你可以把express中controller里面的js方法理解成action。
给你个例子自己分析下就是了 https://github.com/madhums/node-express-mongoose 不要把MVC局限在 .net 的UI+BLL+DAL 或者JAVA的 Struts + Spring+Hibernate上,要知道 做IOS、Android开发都是有MVC模式的,MVC是一种设计模式,在多个平台上都有。
@p412726700 这里我有点不认同 三层和mvc不是对立的是可以共存的 就.net而言webform和mvc是对立的 webform可以用三层 mvc同样也可以用三层
express 不包含 M部分, M需要通过其他如sequelize 实现
@huangshaohui 之前只用过把mvc中m(EF)层替换成DAL,至于怎么把VC层和UI+BLL融合,我还真没想出方案,不过既然用mvc了,就跟着共识走吧。 另外从asp.net生态转移到nodejs生态,需要转变的还有很多,.net里面直接引用各种Namespace就行,nodejs则需要你下载需要的packages后才能引用。
@p412726700 谢谢你的建议