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

2018-05-31 12:33:08 +08:00
 minglanyu

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

4783 次点击
所在节点    Node.js
15 条回复
2pen
2018-05-31 12:36:20 +08:00
自己加个事件监听?
hlwjia
2018-05-31 13:38:49 +08:00
这是什么业务场景?
xxxy
2018-05-31 14:15:15 +08:00
不知道你用的是什么数据库,但是基本上都有触发器这个概念的。Mongodb 的话可以使用 mongo log,在插入事件之后返回。
minglanyu
2018-05-31 15:45:35 +08:00
@xxxy 就是 mongodb,我去试一下
minglanyu
2018-05-31 15:47:40 +08:00
@xxxy 这是个 package 吗
minglanyu
2018-05-31 15:48:38 +08:00
@2pen 试一下
minglanyu
2018-05-31 15:50:03 +08:00
@hlwjia 比如为文章新增一条评论,直接存到数据库了嘛,但是我没有实时在文章里获得这条评论
zenxds
2018-05-31 17:07:42 +08:00
你需要的是轮询或者 websocket
tinycold
2018-05-31 17:17:54 +08:00
同#8,你这个问题不是 node 的问题,二是你前端没有更新请求啊,你后端无论怎么改,前端不把新数据拉回来,都是白搭
lihongjie0209
2018-05-31 17:21:23 +08:00
@minglanyu #7 你这是实时聊天的功能,不是评论的功能
my3157
2018-05-31 19:37:01 +08:00
不建议在数据库做, 作为一名非专业运维, 研发要用触发器,存储过程一般我都是直接怼回去的, 推荐用 mq , 比较重的有 rabbitmq, 轻量级的有 redis
Mirana
2018-05-31 19:40:20 +08:00
加一个 select count 的接口啊。。
minglanyu
2018-05-31 20:34:26 +08:00
@zenxds @tinycold @lihongjie0209 是不是可以用 socket.io
crs0910
2018-05-31 23:12:27 +08:00
实时场景比较多可以试试 feathers.js ,小需求就简单用下 socket 吧
minglanyu
2018-05-31 23:45:26 +08:00
@crs0910 感谢~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/459190

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX