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

node 接口怎么实现热更新呢?

  •  
  •   minglanyu · 2018-05-31 12:33:08 +08:00 · 4656 次点击
    这是一个创建于 2129 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如:
    通过"/foo"接口在数据库某张表里增加了一条记录。假设是增加前记录数是 10,增加后记录数变为 10+1。
    但是"/bar"接口不能返回数据库变化后的记录。那么现在我怎么动态得让"/bar"接口去获得 11 条记录呢?是不是有某种监听的机制?
    求 V 站老哥指点迷津~

    15 条回复    2018-05-31 23:45:26 +08:00
    2pen
        1
    2pen  
       2018-05-31 12:36:20 +08:00
    自己加个事件监听?
    hlwjia
        2
    hlwjia  
       2018-05-31 13:38:49 +08:00 via iPhone
    这是什么业务场景?
    xxxy
        3
    xxxy  
       2018-05-31 14:15:15 +08:00
    不知道你用的是什么数据库,但是基本上都有触发器这个概念的。Mongodb 的话可以使用 mongo log,在插入事件之后返回。
    minglanyu
        4
    minglanyu  
    OP
       2018-05-31 15:45:35 +08:00 via Android
    @xxxy 就是 mongodb,我去试一下
    minglanyu
        5
    minglanyu  
    OP
       2018-05-31 15:47:40 +08:00 via Android
    @xxxy 这是个 package 吗
    minglanyu
        6
    minglanyu  
    OP
       2018-05-31 15:48:38 +08:00 via Android
    @2pen 试一下
    minglanyu
        7
    minglanyu  
    OP
       2018-05-31 15:50:03 +08:00 via Android
    @hlwjia 比如为文章新增一条评论,直接存到数据库了嘛,但是我没有实时在文章里获得这条评论
    zenxds
        8
    zenxds  
       2018-05-31 17:07:42 +08:00   ❤️ 1
    你需要的是轮询或者 websocket
    tinycold
        9
    tinycold  
       2018-05-31 17:17:54 +08:00   ❤️ 1
    同#8,你这个问题不是 node 的问题,二是你前端没有更新请求啊,你后端无论怎么改,前端不把新数据拉回来,都是白搭
    lihongjie0209
        10
    lihongjie0209  
       2018-05-31 17:21:23 +08:00   ❤️ 1
    @minglanyu #7 你这是实时聊天的功能,不是评论的功能
    my3157
        11
    my3157  
       2018-05-31 19:37:01 +08:00   ❤️ 1
    不建议在数据库做, 作为一名非专业运维, 研发要用触发器,存储过程一般我都是直接怼回去的, 推荐用 mq , 比较重的有 rabbitmq, 轻量级的有 redis
    Mirana
        12
    Mirana  
       2018-05-31 19:40:20 +08:00
    加一个 select count 的接口啊。。
    minglanyu
        13
    minglanyu  
    OP
       2018-05-31 20:34:26 +08:00 via Android
    @zenxds @tinycold @lihongjie0209 是不是可以用 socket.io
    crs0910
        14
    crs0910  
       2018-05-31 23:12:27 +08:00 via Android   ❤️ 1
    实时场景比较多可以试试 feathers.js ,小需求就简单用下 socket 吧
    minglanyu
        15
    minglanyu  
    OP
       2018-05-31 23:45:26 +08:00 via Android
    @crs0910 感谢~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2753 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:15 · PVG 20:15 · LAX 05:15 · JFK 08:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.