2015-09-12 22 views
0

我有一个导出对象的节点模块(数据)。该对象具有值更改的属性。使用反应实时显示来自节点模块的数据

var data = require('data'); 
var count = data.count; 

data.count正在改变它的值(可以假装它是指望秒)。

我用快递和车把和我目前显示的数据是这样的:

var express = require('express'); 
var router = express.Router(); 

router.get('/', function(req, res, next) { 
    res.render('index', { title: 'Home', data: count }); 
}); 

这样做,这样需要的页面被刷新看到更新后的值。我的问题是:如何在不刷新页面的情况下实时显示计数值?

我一直在调查反应但我真的不知道如何设置它。我阅读了一些关于反应模块(nom install react)的教程,但没有太多关于如何使用它的文档。我了解反应网站上的简易指南,但在客户端插入反应脚本。

如果有人能指出我的方向会很棒。

谢谢。

UPDATE:

因此,我安装npm insatll reactnpm install babel并创建了一个组件中的反应,看起来像这样(comp.jsx):

var React = require('react/addons'); 
var data = require('data'); 

var d = React.createClass({ 
    render: function() { 
     return (
      <h1>{data.votes}</h1> 
     ); 
    } 
}); 

module.exports.Component = d; 

我包括在我的路线文件该组件现在看起来像这样:

require('babel/register'); 
var React = require('react/addons'); 

var data = React.createFactory(require('comp.jsx').Component); 

router.get('/', function(req, res, next) { 
    var dataHtml = React.renderToString(data({})); 
    res.render('index', { reactOutput: data }); 
}); 

数据显示像这样放在我的车把模板中:{{{reactOutput}}}。数据已显示但仍不实时更新,页面必须刷新以显示数据更改。

任何想法?

+0

你目前使用什么js库? –

+0

没有其他任何节点,表达式生成器和句柄。开放给任何可以给我我想要的功能的东西。 – Safinn

+0

这个问题很广泛。您正在问如何在服务器和客户端之间同步模块的属性,以及如何在没有任何代码的情况下渲染更改值,以及如何检测对此属性的更改。 – FakeRainBrigand

回答

1

我会使用socketio http://socket.io/,每当您的服务器新数据您将使用socketio将新数据发送到您的客户端模型。

,我建议你在客户端使用模型,焊剂或骨干至少

编辑:

你需要两样东西:

  1. 在你的客户为管理模式的一种方式我建议你看一下助焊剂或骨干网
  2. 一种实时通信到服务器的新数据到客户端的方法,为此你将使用socket.io

[SERVER ---(new_data)--- socket.io_server_side --------> [CLIENT --- socket.io_client_side --->更新你的模型---更新你的页面]

+0

socket.io会自己工作吗?我不需要骨干或流量? – Safinn

+0

您不需要骨干或助焊剂,但使用助焊剂时您的代码会更清洁。我不知道骨干,所以不能说这是如何工作的。 –

相关问题