【问题标题】:What is the best way to fetch data realtime in a Mern Application?在 Mern 应用程序中实时获取数据的最佳方式是什么?
【发布时间】:2022-01-11 06:53:27
【问题描述】:

这就是我使用 set setInterval 的方式,但挑战是每次加载状态时都使用屏幕加载器,这会破坏屏幕上的活动。这似乎也是一个昂贵的过程!

useEffect(() => {
    dispatch(getOrders());
    // Fetching orders every after 1 Minute
    const interval = setInterval(() => {
      dispatch(getOrders());
    }, 60000);

    return () => clearInterval(interval);
  }, [dispatch]);
    
    return loading ? (
        <Loader />
      ) : error ? (
        <Message variant="danger">{error}</Message>
      ) : (
        <Container fluid>
         ...
        </Container>

【问题讨论】:

    标签: node.js reactjs react-redux mongodb-query mern


    【解决方案1】:

    如果您想要实时更新,您应该使用从服务器到客户端的推送方法。执行此操作的常用方法是使用WebSockets 监听客户端并在情况发生变化时从服务器推送更新。

    【讨论】:

    • 谢谢安托万。我已经浏览了文档。想知道是否可以同时运行(监听)节点 API 服务器和 WebSocket 服务器,或者我必须完全切换到 WebSocket 的服务器!
    • 例如使用 Websocket,我必须拥有; const server = require("http").createServer(); server.listen(3000);然而我已经有了; ``` const app = express();猫鼬 .connect(process.env.CONNECTION_URL, { useNewUrlParser: true, useCreateIndex: true, }) .then(() => app.listen(PORT, () => winston.info( Server Running in ${process.env.NODE_ENV} mode on Port: ${PORT} ) ) ) .catch ((err) => console.log(${err}));将 app.listen 和 server.listen 放在同一个 index.js 文件中是正确的实现吗```
    猜你喜欢
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2013-08-25
    • 2017-06-30
    相关资源
    最近更新 更多