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

要设计一个接口,大家觉得哪种看上去舒服点?

  •  
  •   newghost · 2020-02-08 11:44:54 +08:00 · 6966 次点击
    这是一个创建于 1779 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚注意到代码在 node.js 节点下很丑,大家克服一下

    A: 连写型

    db.upsert('article', {
        id      : 1
      , title   : 'Hello world'
      , poster  : 'kris'
      , visit   : 100
    }).error(function(err) {
       ...
    }).done(function(count) {
       ...
    })
    
    db.remove('article', { id: 1 })
      .error(function(err) {
          ...
      })
      .done(function() {
          ...
      })
    
    
    db.find('article', {poster : 'kris'})
      .between('visit', 100, 200)
      .range(100, 200)
      .done(function(err, rows, count) {
        ....
      })
    

    B: 回调型

    oncedb.upsert('article', {
        id      : 1
      , title   : 'Hello world'
      , poster  : 'kris'
      , visit   : 100
    }, function(err) {
       ... 
    })
    
    db.remove('article', { id: 1 }, function(err) {
       ...
    })
    
    
    db.find('article', {poster : 'kris'}, function(err, rows) {
      if (err) {
        console.log(err)
        return
      }
    
      console.log(rows)
    
    }, { between: ['visit', 100, 200], range: [0, 100] })
    

    看到现在很多库都用 A,node.js 标准 API 基本上是 B,大家喜欢哪一种? 大家觉得流行风格会不会变?

    10 条回复    2020-02-09 12:42:14 +08:00
    lsvih
        1
    lsvih  
       2020-02-08 11:47:24 +08:00
    当然链式调用更香啦
    gimp
        2
    gimp  
       2020-02-08 11:53:30 +08:00
    我喜欢 async / await ...
    secondwtq
        3
    secondwtq  
       2020-02-08 12:36:10 +08:00 via iPhone   ❤️ 2
    老实用 Promise 不好么……
    HarryYu
        4
    HarryYu  
       2020-02-08 13:39:11 +08:00
    promise +1
    yafoo
        5
    yafoo  
       2020-02-08 19:31:41 +08:00 via Android
    我喜欢 async / await ...
    ayase252
        6
    ayase252  
       2020-02-08 19:32:09 +08:00
    async await
    yimity
        7
    yimity  
       2020-02-08 20:55:59 +08:00
    写成 Promise,然后觉得 then 不好用可以 async await。
    wanguorui123
        8
    wanguorui123  
       2020-02-09 10:16:29 +08:00 via iPhone
    用 callback 转 Promise 转 await,最终用 await
    WilliamLin
        9
    WilliamLin  
       2020-02-09 10:49:13 +08:00
    async await
    wildnode
        10
    wildnode  
       2020-02-09 12:42:14 +08:00
    这个节点下的代码块样式有点影响体验啊
    另外发现这个节点下评论输入框 focus 的时候 背景会变白
    不知道是 Bug 还是 Feature
    @Livid
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6132 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:26 · PVG 10:26 · LAX 18:26 · JFK 21:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.