V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ysmood
V2EX  ›  Node.js

不小心又开坑了,为 ES7 设计的比 koa 更小更灵活的库。

  •  1
     
  •   ysmood · 2015-07-17 00:05:07 +08:00 · 4748 次点击
    这是一个创建于 3206 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址 https://github.com/ysmood/noflow

    专为 async 和 await 设计的接口。支持任意版本的 node,无需开 harmony 也能使用。

    对 koa 存在的不满:

    • 需要开 harmony 或者使用 iojs
    • 用了 this 来共享状态,这个让函数 compose 变得容易出问题
    • 去掉了 express 的灵魂级 url 选择功能,这个的价值感觉仅次于 connect
    • generator 用于异步处理过于 hack,偏离了设计这个功能的初衷,这样可能会误导初学者
    • generator 是特殊的函数,单独用起来还需要借助 co 之类的库 box 和 unbox
    • 依旧像 express 那样混杂了很多杂音功能,比如 cookie 和 content-type,一个以 route 为核心功能的库里,这些应该让三方的 middleware 去做。
    6 条回复    2015-07-18 03:10:06 +08:00
    MyLady
        1
    MyLady  
       2015-07-17 00:14:06 +08:00
    等大神的好消息.
    scys
        2
    scys  
       2015-07-17 00:27:00 +08:00
    现在知道ES7和coffeescript差不多呀,从现在开始学习下。
    Numbcoder
        3
    Numbcoder  
       2015-07-17 00:44:23 +08:00
    ES7 的 await 可用了吗?
    ysmood
        4
    ysmood  
    OP
       2015-07-17 11:25:32 +08:00
    @Numbcoder 用 babel 的话可以 ES7 await,具体你看这个项目的 readme
    gkuchan
        5
    gkuchan  
       2015-07-18 01:22:52 +08:00
    想入坑, repo中列一个TODO计划吧,看看哪里能帮忙完善一些。
    ysmood
        6
    ysmood  
    OP
       2015-07-18 03:10:06 +08:00
    @gkuchan 随时欢迎,可以加我 Telegram,用户名是 Yad Smood。其他的 IM 也行,比如 G+ 什么的。

    事实上这个项目已经在公司内部的一些项目里用上了,个人感觉除了做 http server,做代理服务也比 express 或 koa 便利很多。我通常需要的是一些小而美的东西。

    这个项目实际上一开始只是我另一个叫 nokit 项目的一个子函数,我最近觉得它非常有意义,于是打算单独抽离出来立项了。

    关于 TODO,我的主要原始代码是用 coffeescript 写的,最近打算将 coffee 翻译成 js。
    另外就是单测和 example 覆盖率太低,现在就只是写了些基础的测试和例子。尤其是例子,还不能充分表达这种编程方式的妙处。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5404 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:41 · PVG 16:41 · LAX 01:41 · JFK 04:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.