V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pandaaa
V2EX  ›  程序员

初学 node,我是选择最新的 koa2 还是更加稳定的 express 框架啦?

  •  
  •   pandaaa · 2017-08-09 17:19:18 +08:00 · 19659 次点击
    这是一个创建于 2662 天前的主题,其中的信息可能已经有所发展或是发生改变。

    稍微在网上看了一下各位大大的评论,必过都是 1 年前或者更早的。不知道现在的使用情况是怎样的。两个框架哪个更加适合 node 新手学习。

    下面是一些网络资料:

    koa

    koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。

    》 koa 是一个比 express 更精简,使用 node 新特性的中间件框架,相比之前 express 就是一个庞大的框架,但是 express 社区强大,该遇到的问题都遇到了,比较好解决。应用丰富,不用自己写。koa 比较灵巧,需要的中间件可以自己写,也不困难,源码易懂。《

    不过最后,还是想问下各位的见解和各位公司使用 node 的情况。我自己的意愿是想从 koa2 入手,顺便扎实 es6 的扎实和了解 es7 的新特性 await...等。

    23 条回复    2018-05-03 13:04:38 +08:00
    pqee
        1
    pqee  
       2017-08-09 17:38:49 +08:00
    koa 不是也好几年了吗。。。
    pandaaa
        2
    pandaaa  
    OP
       2017-08-09 17:43:02 +08:00
    @pqee koa2 呀,看社区说等 node 支持 es7 了,就再推新版的特性支持 await 写法什么的
    nullcc
        3
    nullcc  
       2017-08-09 17:44:59 +08:00
    阿里基于 koa 出了个 egg,可以玩玩
    pandaaa
        4
    pandaaa  
    OP
       2017-08-09 17:52:17 +08:00
    @nullcc 玩个蛋蛋的意思嘛。我去看看,谢了。
    zhihy123
        5
    zhihy123  
       2017-08-09 17:57:53 +08:00
    都差不多的,而且现在 node 支持 async/await 语法,一样可以在 express 里面用。
    pandaaa
        6
    pandaaa  
    OP
       2017-08-09 18:00:16 +08:00
    @zhihy123 恩恩,我看的廖雪峰的教程,直接上的 koa2.感觉是挺好用的,不过有些地方还是有点不熟。
    caizhendi
        7
    caizhendi  
       2017-08-09 18:00:49 +08:00
    你打算怎么学呢。。。。我现在看廖雪峰教程跟着打。。。
    mooncakejs
        8
    mooncakejs  
       2017-08-09 20:34:49 +08:00
    @pandaaa 等 LTS ?不然现在 node 出到 8 了
    huangzitao
        9
    huangzitao  
       2017-08-09 23:45:16 +08:00 via Android   ❤️ 1
    没什么区别,作为新手要熟悉的其实是 http 协议,框架什么的都一样,然而 js 作为一门辣鸡语言,劝楼主早日放弃啊
    blanu
        10
    blanu  
       2017-08-09 23:50:57 +08:00 via iPhone
    没区别,ORM 好好学学,SQL、表优化等等,后端坑太大……
    DCjanus
        11
    DCjanus  
       2017-08-09 23:54:14 +08:00
    KOA2 配合 TypeScript,写起来简直太爽
    seasstyle
        12
    seasstyle  
       2017-08-10 00:43:26 +08:00 via Android
    @DCjanus 膜拜大神
    markocen
        13
    markocen  
       2017-08-10 00:52:59 +08:00 via Android   ❤️ 1
    建议选择 express, express 的生态比 koa 好太多,从 npm 每日下载量也能看出 express 更加流行,
    leopku
        14
    leopku  
       2017-08-10 09:03:35 +08:00
    express +1
    caiya21
        15
    caiya21  
       2017-08-10 12:13:55 +08:00
    koa 2
    welefen
        16
    welefen  
       2017-08-10 12:23:57 +08:00
    这时候有必要推广下 ThinkJS,哈哈 https://thinkjs.org/
    welefen
        17
    welefen  
       2017-08-10 12:24:57 +08:00
    ThinkJS 是基于 Koa2 的,可以直接使用 async/await
    DCjanus
        18
    DCjanus  
       2017-08-10 19:57:22 +08:00   ❤️ 1
    @seasstyle ???怎么就大神了?

    @pandaaa 我以前写 Java web 后来被人拉去写 Node web,不清楚用 JS 写是什么情况,一上来用的就是 TypeScript。
    个人比较喜欢 Koa 这种非常自由的框架,TypeScript 也可以为自己提供良好的代码补全支持(至于编程哲学家们说的什么 TypeScript 改变思路之类的东西我没多少体会,因为确实没正经写过 JS)。
    web 开发里最常用的功能也就是人气最高的功能肯定会有人去实现,不管是 express 还是 Koa2,这方面并不需要太过担心。另外不知道别的地方怎么样,反正我们那 node web 只用于比较简单的逻辑,历史包袱比较轻,所以并不需要太多非常深度的功能。

    真要选择大概是看你个人喜好吧,喜欢一站式服务的选 express,喜欢灵活自由的就用 Koa2。

    BTW: TypeScript 确实安利一下,可能是目前最好用的 JS 代码补全工具(大雾)
    pandaaa
        19
    pandaaa  
    OP
       2017-08-10 21:25:04 +08:00
    @DCjanus 恩,谢谢了
    pandaaa
        20
    pandaaa  
    OP
       2017-08-11 10:30:03 +08:00
    谢谢大家的建议
    pandaaa
        21
    pandaaa  
    OP
       2017-08-11 10:33:42 +08:00
    我决定还是先看一下 express,扎实一下基础。再使用 koa2
    pandaaa
        22
    pandaaa  
    OP
       2017-08-14 09:18:30 +08:00
    @DCjanus 谢谢您的建议
    xuemeigood
        23
    xuemeigood  
       2018-05-03 13:04:38 +08:00
    建议 koa2,它最新的 Es6 Es7 语法运行速度相比 Express 要快很多的,这个也分享个教程,你看看估计就清楚了 https://pan.baidu.com/s/1KNaA97kGwNhavch5rP_G7w
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 03:50 · PVG 11:50 · LAX 19:50 · JFK 22:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.