V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
admin2017
V2EX  ›  问与答

Node 为啥没有出现很完善的 MVC 之类的框架, Express 严格上来说不算框架吧

  •  
  •   admin2017 · 2017-03-06 10:36:11 +08:00 · 2949 次点击
    这是一个创建于 2612 天前的主题,其中的信息可能已经有所发展或是发生改变。
    18 条回复    2017-03-07 20:42:18 +08:00
    TakWolf
        1
    TakWolf  
       2017-03-06 10:40:05 +08:00
    为啥不算, Express 是标准的 MVC 模式
    srlp
        2
    srlp  
       2017-03-06 11:35:21 +08:00 via iPhone
    楼主想要的是 django, ruby in rails 吧。

    好像是没有类似的有名的东西。

    不过同意楼上, express 标准 mvc ,只是没有更多的自动化。
    crysislinux
        3
    crysislinux  
       2017-03-06 11:44:05 +08:00
    可能用 node 一般重型的是出于提供 api 吧,一般的应用 express 也就可以用了。
    感觉 node 更倾向于可替换的包吧,像 Django 这种多数时候没太多选择的。
    xss
        4
    xss  
       2017-03-06 12:52:26 +08:00
    @TakWolf Express 并没有 MVC 的概念, 所谓的 MVC 只不过是人为在逻辑上强行划分出来的而已.
    admin2017
        5
    admin2017  
    OP
       2017-03-06 13:07:55 +08:00
    @TakWolf
    @xss 我觉得 Express 连框架都算不上,最多只是封装了底层的一些函数,更谈不上算是 MVC 框架了


    @srlp 对, py 有 django 之类, ruby 有 ror , php 有 laravel 之类,连 go 都有类似的,为啥 node 没有呢


    @crysislinux 我也觉得 Express 之类提供 API 挺合适的,但是应该也有人会有需求做其它啊,这个时候类似 django 之类的 mvc ( 虽然 django 自称是 mtv ) 框架不是更合适么 =,=
    xss
        6
    xss  
       2017-03-06 13:11:24 +08:00
    @admin2017 你都说了封装了, 那自然就是框架喽. 不然, 你心目中框架应该是怎么定义的...?Express 的确不是 MVC 框架.
    denghongcai
        7
    denghongcai  
       2017-03-06 13:20:41 +08:00
    Sails
    admin2017
        8
    admin2017  
    OP
       2017-03-06 13:35:15 +08:00
    @denghongcai 感谢,貌似已经讨论过 node 框架的问题了 https://www.v2ex.com/t/248799 之前没搜到 (*@ο@*)
    ETiV
        9
    ETiV  
       2017-03-06 13:37:47 +08:00 via iPhone
    sails meteor 算不算
    acthtml
        10
    acthtml  
       2017-03-06 13:41:54 +08:00
    express 、 koa 更加倾向于类库,框架类的有 sails,thinkjs
    SharkIng
        11
    SharkIng  
       2017-03-06 14:03:35 +08:00
    Sails 算,不过说实话 Sail 的确不怎么好用。
    还是 Express 好用,而且很多人已经习惯而且已经自己开发出来一些基于 Express 和 Angular 之类的“框架”了

    如果硬是想要的,有个 MEAN Stack 的也不错,是基于 Express, Mongo, Angular, Node (MEAN) 的,而且还有两个,基本应该可以满足 LZ 需要的 ROR, Laravel 的需求。
    viko16
        12
    viko16  
       2017-03-06 14:17:05 +08:00
    无责任安利 https://eggjs.org/
    murmur
        13
    murmur  
       2017-03-06 14:22:42 +08:00
    m 层被淡化 v 层任何一个模板引擎都实现的了 c 层是留给你自己写的
    你是喜欢 java 那种所有 bean 强类型和数据表一一映射的么
    admin2017
        14
    admin2017  
    OP
       2017-03-06 20:48:04 +08:00
    @xss
    @acthtml 对,我认为 Express 更倾向于类库

    @ETiV
    @SharkIng 算,参见#7 链接中还有好几个

    @viko16 感谢

    @murmur mvc 框架至少会实现自动路由吧,然而 Express 并没有啊。反而是 m 层有第三方的包可以引入用
    murmur
        15
    murmur  
       2017-03-06 21:30:22 +08:00
    @admin2017 springmvc 还不是手写路由。。一个写成 app.get/post ,一个写到注解上,这不挺好的么

    有时候那种全自动的 路由反倒不好,以前有一个类似 玄学的东西,就是把一个语言写的“不像”这个语言,比如某些 有特别爱好的,所有的 action 后缀都是.htm 。。
    admin2017
        16
    admin2017  
    OP
       2017-03-07 09:46:53 +08:00
    @murmur 后缀这个应该是有安全考虑吧 , spring 写到了注解里,但是 laravel 之类并没有啊,这样全自动匹配虽然效率会弱于这些,但是可读性还是挺好的。如果想不走全匹配,也可以显式的去写正则路由,类似 django 的做法,单独把路由层给提取出来,这样更简洁易读啊
    SharkIng
        17
    SharkIng  
       2017-03-07 14:45:28 +08:00
    @admin2017 #14 不知道 LZ 有没有兴趣比较下然后回来反馈↓哪个比较好用哪个比较像 ROR,Laravel 等这样的
    admin2017
        18
    admin2017  
    OP
       2017-03-07 20:42:18 +08:00   ❤️ 1
    @SharkIng 可以,后期会出一篇详细的评测 ╰(*°▽°*)╯
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2010 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:25 · PVG 09:25 · LAX 18:25 · JFK 21:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.