asp.net mvc 风格的 nodejs mvc 大家觉得怎么样?(已发布)
发布于 10 年前 作者 ruleechen 7524 次浏览 最后一次编辑是 8 年前

#asp.net mvc 风格的 nodejs mvc 我以前从事很多 asp.net mvc 的项目,最近开始用 nodejs,看了 express,很简单很好入手,但是感觉不够强大,也或许是因为我还没有完全掌握 express,不管怎么样,不过我就是很想能有一个更适合自己的 mvc 框架,但是一直找不到,于是我决定用闲暇时间写一个类似 asp.net mvc 风格的 nodejs mvc 框架。

将会使用一样的层次划分:Area -> Controller -> Action

这是一个 controller.js 的例子:

var mvc = require('xxxx/mvc');
mvc.controller(function(req, res, end) {

    this.action('index', function() {
        end.redirectToAction('test','home', { id: 1 });
    });

    this.action('test', function(id) {
        end.view({ id: id });
    });
});

有人感兴趣吗? 求提各种意见~~~~

#2014.8.18新增 我的 nodejs MVC 终于发布了,求大神们star,求大神们fork,求各位大神拍砖。 https://www.npmjs.org/package/cat-mvc https://github.com/jszoo/cat-mvc

22 回复

本身不就是这样吗

express 就有mvc的感觉呀

@freew01f 诚然功能上表面上看差不多,但实际还是不一样的,

  1. asp.net风格的mvc依靠代码文件的分割,达到自动路由的功能,这个比起express中要定义一串的url pattern优雅。
  2. 自动的数据注入。你可以看到action方法上得参数,那是可以自动注入的(支持对象注入),比起express要从param里只能取字符串也更优雅+方便。
  3. 更直观的mvc结构。controllers+views+areas(可惜这里不能贴图,不然可以截图),而不是express routes+views,(express中 controller 和 route 绞在一起了)。
  4. 同一站点同时支持多种视图引擎。貌似express只支持一种,我的这个mvc计划会支持的。
  5. 更少的代码入侵。我会采用包装 nodejs 对象的方式,我看了express 的代码,基本是采用继承 nodejs 的对象,然后加了各种对象,各种方法,实在让人混淆,不知道哪个是原生的,哪个是express的,非常不利于学习和使用。

@chenrihong 请看下我回复 @freew01f 的那个内容,简单对比了下 :)

@ravenwang 谢谢鼓励,已经开始做了 :)

koa 难道做的不够好?

@jeremy16601  谢谢你,我刚知道还有 koa,我以为只有 express, 囧了~

@jeremy16601 花了点时间看了下 koa 文档和简单瞄了下源码,确实是比 express 好很多,竟然也是 express 团队做的~~

  1. koa 使用的 yield 关键字实在太 cooool 了,相比之下的 callback 只要层次多了,真是不好控制。
  2. 就像我上面回复 @freew01f 的第 5 点那样,koa 不再使用继承 nodejs 对象了,也是采用包装,想法一致了 :)
  3. 代码层次清晰了很多,采用公开 hander 的方式来拦截处理原生请求,这一点也和我的想法一致了 :)
  4. 高度的简洁,没有加入其他中间件,没有路由,没有视图引擎等等必备的东西,这可能是它的优点也是缺点。
  5. 总的来说 koa 给我的感觉不错,应该还有其他我还没有发现的亮点。

哈哈 !同是KOA粉丝 看完KOA 我果断放弃ASP.NET MVC 看来express诱惑力不大

@freew01f 总的来说koa真的不错,有很多值得学习的地方,不过koa目前比较像是个底层类库,不像框架,这给开发带来一定的麻烦

我的 nodejs MVC 终于发布了,求大神们star,求大神们fork,求各位大神拍砖。 https://www.npmjs.org/package/cat-mvc

这效率这执行力,赞!

赞,计划做下贡献,等你把文档写好了,我把它翻译成中文 :D

我也有这个打算, 楼主已经做了啊

赞起! 需要更多这样的大神 推动nodejs发展

没人推荐sails么,多好用的框架

@ravenwang 谢谢,刚好这段时间项目有空档,比较有时间做自己的东西:)

@Hi-Rube OK太好了,代码都差不多了,文档很头痛,不好组织

@slightboy 求试用看看,给提点意见或建议

@jeremy16601 nodejs我是刚接触,一起学习进步

@lzyzsd 不懂这个,来去看看 sails :)

回到顶部